美文网首页
FOOM SOLUTION 1 :SERIAL ACCESS C

FOOM SOLUTION 1 :SERIAL ACCESS C

作者: maybe_sigkill | 来源:发表于2018-07-29 02:16 被阅读0次

            FOOM(Foreground Out Of Memory),code.facebook.com/posts/11469…,app前台因为内存暴增引起的前台系统级crash,使用市面上大部分的监测工具都无法获取调用堆栈。如何监测可以学习《iOS微信内存监控》。本文旨在如何处理由于内存暴增引起的FOOM问题处理。

            内存增大,大部分罪魁祸首都是图片资源。为了增强用户体验,保证高fps的图片缓存框架一般都会进行强制解码,带来的弊端就是会在内存中产生大量的VM:CGRaster Data,如果在短时间内decode过多图片就会引起crash。

            通过调研发现Twiter的image-pipeline提供了一个较为有效的方法,分享给大家。通过顺序访问CGContext可以有效降低,在很短时间内出现峰值而导致app被kill。

    void ExecuteCGContextBlock(dispatch_block_t block)

    {

        static dispatch_queue_t sContextQueue;

        static dispatch_once_t onceToken;

        dispatch_once(&onceToken, ^{

            sContextQueue =dispatch_queue_create("xxx.CGContext.queue",DISPATCH_QUEUE_SERIAL);

        });

        @autoreleasepool {

            dispatch_sync(sContextQueue, block);

        }

    }

    相关文章

      网友评论

          本文标题:FOOM SOLUTION 1 :SERIAL ACCESS C

          本文链接:https://www.haomeiwen.com/subject/luzamftx.html