[TOC]
优化的方向
我们经常听到性能优化,但性能到底指啥呢,性能优化具体是优化啥,把这个问题搞懂了,性能优化就入门了。
常见的优化有三种:
- 界面优化
- 内存优化
- 启动优化
FPS
FPS
(屏幕刷新率):
- 性能优化中最具参考价值的属性
- iPhone 推荐的默认刷新率是 60Hz,也就是说 GPU 没秒中刷新屏幕 60 次,每刷新一次就是一帧 frame,FPS也是指没秒刷新多少帧画面。
- 精致不变的 FPS 值是0,这个值没有参考意义,只有当页面执行动画或者滑动的时候,FPS值才会有参考价值
- FPS值提现了页面的流畅成都高低
- 当低于45时,卡顿效果比较明显。
图层混合
-
像素 RGB
每一个layer是一个纹理,所有的纹理都以某种方式堆叠在彼此的顶部。对于屏幕上的每一给像素,GPU需要算出怎么混合这些纹理来得到
像素 RGB
的值。当
Sa = 0.5
时,RGB的值为(0.5, 0, 0)可以看出,当两个不是完全不透明的 CALayer 覆盖在一起时,GPU会做大量的复合操作,随着这种操作越多,GPU 越忙碌,性能肯定会受到影响。
-
公式
R = S + D * (1 - Sa)
- R:像素RGB
- S:源色彩(顶端纹理)
- D:目标颜色(低一层的纹理)
- Sa:源色彩的透明度
当
Sa=1
时,R=S
,GPU 将不会做任何合成,而是加你单从这个层拷贝,不需要考虑它下方的任何东西(因为都被他遮挡住了),这样就节省了GPU相当大量的工作量。
性能优化手段
- 利用性能分析工具检测,包括静态 Analyze 工具,以及运行时 profile 工具,通过 xcode 工具栏中的
product-> profile
可以启动 - 比如测试程序启动运行时间,当点击 Time Profile 应用程序开始运行后,就能获取到整个运行程序运行消耗时间分布和百分比。为了保证数据分析在同一使用场景真实,需要使用真机,模拟器是运行在 Mac 上,Mac的 CPU 往往比 iOS 设备快。
- 为了防止一个应用占用过多的系统资源,开发iOS的苹果工程师门设计了一个“看门狗”的机制。在不 同的场景下,“看门狗”会监测应用的性能。如果超出了该场景所规定的运行时间,“看门狗”就会强制 终结这个应用的进程。开发者们在 crashlog 里面,会看到诸如 0x8badf00d 这样的错误代码。
网友评论