iOS 功能类

iOS优化计划

2020-01-14  本文已影响0人  健了个平_24

屏幕成像优化

iOS的首要优化任务需在屏幕成像方面下功夫,在屏幕成像的过程中,CPU和GPU起着至关重要的作用

CPU(Central Processing Unit,中央处理器)

GPU(Graphics Processing Unit,图形处理器)

在iOS中是双缓冲机制,有前帧缓存、后帧缓存

屏幕成像过程
屏幕成像原理
卡顿产生的原因
如上图所示,HSync是先经由CPU计算过后给到GPU渲染形成新的一帧,VSync到来时就显示那一帧画面,但是如果VSync来到时那一帧还没渲染好,那就只能继续用上一帧的画面(新的一帧会留到下一次垂直信号的到来时再显示),这样就会造成卡顿的现象,俗称掉帧
按照60FPS的刷帧率,每隔16ms就会有一次VSync信号

卡顿解决的主要思路:尽可能减少CPUGPU资源消耗

CPU方面优化

1. 尽量用轻量级的对象,比如用不到事件处理的地方,可以考虑使用CALayer取代UIView
2. 不要频繁地调用UIView的相关属性,比如frame、bounds、transform等属性,尽量减少不必要的修改
3. 尽量提前计算好布局,在有需要时一次性调整对应的属性,不要多次修改属性
4. Autolayout会比直接设置frame消耗更多的CPU资源
5. 图片的size最好刚好跟UIImageView的size保持一致
6. 控制一下线程的最大并发数量
7. 尽量把耗时的操作放到子线程
    * 文本处理(尺寸计算、绘制)
    * 图片处理(解码、绘制)

GPU方面优化

1. 尽量避免短时间内大量图片的显示,尽可能将多张图片合成一张进行显示
2. GPU能处理的最大纹理尺寸是4096x4096,一旦超过这个尺寸,就会占用CPU资源进行处理,所以纹理尽量不要超过这个尺寸
3. 尽量减少视图数量和层次
4. 减少透明的视图(alpha<1),不透明的就设置opaque为YES
5. 尽量避免出现【离屏渲染】

离屏渲染

在OpenGL中,GPU有2种渲染方式

离屏渲染消耗性能的原因

尽可能减少以下操作以减少离屏渲染

耗电优化

网络优化

启动优化

APP启动时间的优化,主要是针对冷启动进行优化(冷启动:从零开始启动APP)


APP冷启动过程

APP的冷启动可以概括为3大阶段:

dyld

runtime

main

设计模式优化

上一篇 下一篇

猜你喜欢

热点阅读