主题 : 苹果是如何让iOS 12加速的?有四大要点
千山同一月 万户尽皆春 千江有水千江月 万里无云万里天
级别: 总版主

UID: 998
精华: 0
发帖: 387510
威望: 334543 点
无痕币: 780 WHB
贡献值: 0 点
在线时间: 37130(时)
注册时间: 2008-12-25
最后登录: 2018-06-23

苹果是如何让iOS 12加速的?有四大要点

iOS 12比iOS 11更快、更平滑了,升级了的锋友肯定都同意这一点。但苹果为了让iOS 12变快究竟做了哪些升级呢,只有发布会上说的调整处理器运算资源吗?当然不是,在昨天“Cocoa Touch的新特性”这场演讲中,苹果为我们介绍了针对iOS 12做出的一系列改变。
改进预加载功能
在iOS 12中,苹果工程师攻克了困扰用户数年的卡顿问题,他们在检查官方App时发现了过去丢帧的原因。在iOS中,用户滑动、点击屏幕的时候就需要即时渲染生成内容,比如说菜单列表或者是文档中的图形,这个生成的过程花费的时间就会导致延迟。

为了降低这一延迟,苹果在iOS 10中引入了一个名为“Cell Pre-fetch”的功能,简单来说就是在后台预测用户的动作,然后预先加载好相应的内容,当用户确定了这个点击或滑动马上把预加载好的内容呈现上来,这样一来就不会延迟了,而且不会出现处理器负载突然加大的问题。
虽然“Cell Pre-fetch”确实让iOS 10变快了,但是仍然没有完全解决丢帧问题,工程师们发现,当系统在预加载内容的时候,处理器也同时在渲染确定会在屏幕上呈现的那一组内容,二者同时进行就会导致CPU遇到瓶颈,然后两个任务就都变慢了。

为了解决这一问题,苹果在Cocoa Touch(开发者创建iOS App时使用的接口)中重新对任务进行了排序,在屏幕渲染任务完成之后,预加载才启动,因为前者需要马上被用户看到,更加重要。
CPU响应机制升级
除了这一点之外,CPU也有一定的升级。此前的iOS设备中,在CPU负载很小的时候也会发生丢帧,因为在任务很少的时候CPU会降低频率进入怠速模式。但是如果用户突然触发了一个比较麻烦的任务,CPU就需要一点时间反应过来然后加快频率,这一过程中就会发生延迟。
而在iOS 12中,苹果优化了CPU的响应机制,能更快地从低频提升到高频,并且iOS 12还很聪明,不会把CPU的频率拉得太高,只会提供完成这个任务所需要的那个频率上,所以在完成任务之后,CPU也能够很快将频率降到合适的怠速水平,减少电池的消耗。
Auto-layout(自动布局)功能升级
紧接着还有对Auto-layout(自动布局)功能的升级,Auto-layout让开发者能对App内的图标、文字等元素更方便地定位(比如据边框多少像素),以适应不同的屏幕尺寸。但是苹果工程师发现这个从iOS 6就有的功能现在看来有些过于耗费资源了,在不同的情况下,Auto-layout使用的资源可能会呈指数级增长,比如元素在嵌套和依赖于其他元素进行放置两种状态下,耗费的资源大不相同。

在iOS 12中,苹果大大减少了会导致指数缩放的元素,减轻了对CPU和GPU的负担。总体来看,让渲染的元素彼此独立放置、互不干扰能够减少资源消耗。
自动备份存储技术
最后,苹果还介绍了iOS 12的自动备份存储技术,它可以减少应用程序运行的时候消耗的内存量。在苹果的演示中,当旧版系统渲染相同大小的彩色照片和灰度图像(只存在灰度信息的黑白照片)时,耗费的内存竟然是完全一样的,但其实这两张照片包含的信息存在显著差异,彩色照片每个像素都有色值等信息,黑白照片只有灰度信息。
而在使用自动备份存储技术之后,系统会对不同文件包含的数值信息进行一个初步的判断,然后再分配合适的内存给它,不会像以前那样一视同仁地处理所有内容,这样做显然可以避免浪费内存资源。
除了以上四点之外,苹果还介绍了不少加快系统运作的方法。不过在演讲的最后,工程师还是表示现在他们正在积极地对这些功能展开工作,希望在iOS 12正式版上线之前(今年九月)完成优化,如果无法完成,可能会推迟几个版本。
级别: 九滴秋露

UID: 88
精华: 0
发帖: 55430
威望: 102500 点
无痕币: 3393 WHB
贡献值: 0 点
在线时间: 13920(时)
注册时间: 2008-03-18
最后登录: 2018-06-23

谢谢楼主的精彩分享。
级别: 四缕秋风

UID: 5568
精华: 0
发帖: 1983
威望: 3327 点
无痕币: 103 WHB
贡献值: 0 点
在线时间: 180(时)
注册时间: 2007-12-21
最后登录: 2018-06-22

谢谢楼主提供分享!     
级别: 七朵秋菊
UID: 55163
精华: 0
发帖: 2151
威望: 45241 点
无痕币: 478 WHB
贡献值: 0 点
在线时间: 383(时)
注册时间: 2008-10-01
最后登录: 2018-06-22

回去升级。
Total 0.020834(s) query 4, Time now is:06-23 14:08, Gzip enabled 粤ICP备07514325号-1
Powered by PHPWind v7.3.2 Certificate Code © 2003-13 秋无痕论坛