iOS APP 性能优化及加速启动iOS面试题+基础知识iOS开发

iOS性能优化看这一篇就够了

2019-09-30  本文已影响0人  大冯宇宙

处理器优化

CPU和GPU
卡顿产生的原因

按照60FPS的刷帧率,每隔16ms就会有一次VSync信号,一旦垂直同步信号来了,GPU会立马将帧缓存区的数据显示到屏幕上去,并且马上开始下一帧的操作,在16ms时间内GPU没有处理完成,GPU就会将这一次的数据抛弃掉,屏幕就会显示上一次渲染完成的数据,从而产生掉帧,就是卡顿现象。

卡顿优化 - CPU
卡顿优化 - GPU
离屏渲染
卡顿检测

平时所说的“卡顿”主要是因为在主线程执行了比较耗时的操作
可以添加Observer到主线程RunLoop中,通过监听RunLoop状态切换的耗时,以达到监控卡顿的目的

触发卡顿的时间阈值,我们可以根据 WatchDog 机制来设置。
WatchDog 在不同状态下设置的不同时间,如下所示:
启动(Launch):20s;
恢复(Resume):10s;
挂起(Suspend):10s;
退出(Quit):6s;
后台(Background):3min(在 iOS 7 之前,每次申请 10min; 之后改为每次申请 3min,可连续申请,最多申请到 10min)。
通过 WatchDog 设置的时间,我认为可以把启动的阈值设置为 10 秒,其他状态则都默认设置为 3 秒。总的原则就是,要小于 WatchDog 的限制时间。当然了,这个阈值也不用小得太多,原则就是要优先解决用户感知最明显的体验问题。

耗电优化

耗电主要来源

CPU处理,Processing
网络,Networking
定位,Location
图像,Graphics

耗电优化

启动优化

dyld
runtime

main

APP的启动优化

按照不同的阶段

安装包瘦身

LinkMap
上一篇 下一篇

猜你喜欢

热点阅读