为什么要优化 iOS 的性能?
当然是为了更好的用户体验
做性能优化挺麻烦的:
- 有风险
程序能跑,就不要动
- 费时间
业务时间很紧张的, “重构” 时间也很紧张
- 做优化,本来就很复杂
大脑一片空白。一般人搞不定
- 代码优化,哪里比得上硬件的性能大幅度提升
硬件不值钱,工程师的时间很烧钱
这些年,苹果硬件确实是提升显著
20132013年,带着 A7 芯片的 iPhone 5s 发布时,iPhone 5s 性能远超原型机,CPU 处理上快40倍,图像处理上快56倍。
资料链接: Mac 文化 网站
2016年, iPhone 7 发布,性能提升到了120倍。
2017具体性能方面,A11 BIONIC号称其两颗性能核心就比前代的A10整体快了25%;四颗效率核心更是比A10提升了70%。整体的CPU性能比A10提升了70%。
资料链接:揭秘iPhone X背后的
硬件提升显著
2017年的果机,性能较2007年的,提升了200倍。
但是
-
增强现实功能, AR , 非常耗电
-
240 fps 1080p 的 Slo-mo 慢动作、慢镜头,也是电量杀手
-
还有 iPhone X 的动话表情(Animoji)
...
并不是每个人的 iPhone 都是最新款,有 A11 这种高级芯片。
屏幕快照 2018-04-26 下午2.45.33.png资料链接:iPhone 设备市场
所以呢, 提高 app 的性能,一般从三个方向着手:
-
没有闪退
包括应用不会被系统的守护进程 watchdog ,干掉。
其中一种情况就是,app 使用的内存过多,就被系统 kill 了. -
交互流畅
-
省电
测量 app 的性能, 敢问路在何方?
拍脑袋,一般没有什么建设性。
通过使用工具测量 app 的性能,才知道要不要改进,改哪里。
改进。
再测量,看看改的怎么样。
测量的工具和方法,一般有
- NSLog / print 方法
- 调试神器 Instruments
- XCTest 框架下的 measure( ) 方法
(写过单元测试的同学,都了解 )
辛苦啦
本文是 CocoaHeads Shanghai 第35期,sente.ch 公司的开发者 Marco Scheurer 演讲的简单整理
资料见 GitHub 链接
网友评论