参考
https://ke.qq.com/course/314526
CPU优化
1.尽量用轻量级的对象,比如用不到事件处理的地方,可以考虑使用 CALayer取代 UIView。
2.不要频繁地调用 UIView的相关属性,比如fame,,bounds,transform等属性,尽量减少不必要的修改。
3.尽量提前计算好布局,在有需要时一次性调整对应的属性,不要多次修改属性。
4.Autolayout会比直接设置 framer消耗更多的CPU资源。
5.图片的size最好跟 UIImageView的size保持一致。
6.控制一下线程的最大井发数量。
7.尽量把耗时的操作放到子线程,比如文本处理和图片处理。
GPU优化
1.尽量避免短时间内大量图片的显示,尽可能将多张图片合成一张进行显示。
2.尽量减少视图数量和层次。
3.减少透明的视图( alpha<1),不透明的就设置 opaque为YES。
4.尽量避免出现离屏渲染。
哪些操作会触发离屏渲染?
1.光柵化, layer. shouldRasterize=YES
2.遮罩,layer.mask
3.圆角,同时设置Layer. masksToBounds=YES、 layer. cornerRadius大于0
4.阴影,layer. shadowXXX
耗电优化
1.降低CPU,GPU的损耗。
2.少用定时器。
3.优化文件操作,一次性写入数据,大数据使用数据库。
4.优化网络方面,重复请求用缓存,设置超时,设置取消请求,网络差的情况下不请求等。
5.优化定位,定位完毕记得关闭定位,可以适当降低精确度。
启动优化
dyld阶段
1.减少动态库、合并一些动态库(定期清理不必要的动态库)。
2.减少0bjc类、分类的数量、减少 Selector数量(定期清理不必要的类、分类)。
3.减少C++虚函数数量。
4.Swift尽量使用 struct。
Main阶段
1.在不影响用户体验的前提下,尽可能将一些操作延迟,不要全部都放在 finishLaunching方法中。
2.按需加载。
安装包优化
1.AppCode检测项目,找出未使用过的代码并删除。
2.项目中用到的图片做到无损压缩。
3.编译器优化。
补充
本文如有侵犯隐私或其他请联系我,我将在第一时间整改或删除。
网友评论