美文网首页iOS
记一次对首次启动进入聊天页面的优化

记一次对首次启动进入聊天页面的优化

作者: eagleyz | 来源:发表于2019-06-11 11:21 被阅读14次

    背景:

    公司产品对性能优化越来越高。上次对冷启动优化之后,从2.6秒优化到了0.65秒,具体可以参考 https://www.jianshu.com/p/49cecc06e99f
    但是作为一款IM及时通讯产品,除了这个优化还不够。另外一个就是对于首次启动,对于点击进入聊天界面这个时间的优化,目前的问题是首次进去是1.7秒,第二次进入是0.6秒。那么这相差的1.1秒是消耗在哪了呢?
    经过仔细认真的排查,发现时间耗时在获取图片展示上了。总共需要44张图片,每个图片在bundle里面。既然如此,那如果每次都能0.6秒,岂不是就能秒加载了。看一下这个方法

    + (nullable UIImage *)imageNamed:(NSString *)name; 
    

    这个有什么特点呢,看一下官方注释


    image.png

    咦,貌似官方会加载完之后,做一个缓存,那再次加载就快很多了。
    所以,如果把需要的图片,到提前缓存一下不就好了么。完美。


    image.png
    如图所示,在启动的时候,直接异步把需要的图片加载一次就可以了。然后呢,然后不需要做什么,直接把存放图片的数组释放掉就可以了。因为这里加载图片唯一目的就是为了让系统有个缓存而已。等真正用的时候,直接去内存里面拿就可以了。

    结果:

      经过这个优化之后,把首次点击进入聊天界面从1.7秒优化到了0.6秒。完美。
    

    拓展:

    如果需要经常使用,或者性能要求高的地方,可以用 imageNamed 来缓存

    如果不是经常使用,性能要求不高的地方,用imageWithContentsOfFile 因为这个方法不会加入缓存


    image.png

    相关文章

      网友评论

        本文标题:记一次对首次启动进入聊天页面的优化

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