iOS 12 是如何解决 UI 卡顿、掉帧的

2018-06-08 04:15:50 +08:00
 Valyrian

https://www.reddit.com/r/apple/comments/8p74zh/wwdc_insight_how_dropped_frames_are_finally_being/

6621 次点击
所在节点    iOS
10 条回复
shutongxinq
2018-06-08 08:04:20 +08:00
对于里面的第三点:即使在顶尖的地方,我也经常看见很多文盲把 O(N) 写成 O(N^2)而且不自知。主要感觉很多人没有正确的直觉一个问题大致能提出怎么样复杂度的算法,结果脑子一拍就写出来交差了。至于通信开销省下来能起多大效果啊,shared memory cache hit 该怎么提高啊,大多数人更没有什么感觉根本不注意😂😂😂
Mutoo
2018-06-08 08:10:19 +08:00
a.k.a iOS10 是如何制造 UI 卡顿、掉帧的
Valyrian
2018-06-08 08:13:21 +08:00
@shutongxinq 把逻辑写对谁都会,优化算法确实需要技术实力。。
luoerxiansheng
2018-06-08 14:13:37 +08:00
time.sleep(10) 改成 time.sleep(4)
LeoNG
2018-06-08 16:25:40 +08:00
开除阿三(逃~
tianjn
2018-06-08 17:57:14 +08:00
@shutongxinq WWDC 一个 session (what's new in cocoa touch)明说了,iOS11 的 auto-layout 不是 O(n^2),是指数…我挺佩服他们敢说出来的,真不怕友商戳脊梁骨
Building
2018-06-08 21:46:07 +08:00
翻译一下: 我们以前挖了很多坑,现在终于有时间填上一些了。
kojirou
2018-06-08 23:06:50 +08:00
@tianjn 阿三给力
shutongxinq
2018-06-08 23:39:51 +08:00
@tianjn 这个 reddit 帖子的第三点就讲的你说的这个 session。
zitengdu
2018-06-09 08:40:55 +08:00
以下为拷贝内容[cnbeta]( https://www.cnbeta.com/articles/soft/734595.htm)

此外,一名 [Reddit]( https://www.reddit.com/r/apple/comments/8p74zh/wwdc_insight_how_dropped_frames_are_finally_being/) 用户完美解释了苹果的演讲内容,并剖析了 iOS 12 是如何(至少在理论上)带来更快的 app 体验的。

> 苹果一直在研究各种方法,以确保当用户浏览一款 app 时,iPhone 已经做好了提供一致性能的准备,而无需面对掉帧或滚动问题。

[![img]( https://static.cnbetacdn.com/article/2018/0608/db365941a0fb9e2.jpg)]( https://boygeniusreport.files.wordpress.com/2018/06/ios-12-speed-app-performance-scrolling-1.jpg)

**正如你可能已经猜到的那样,这一切都与设备资源的使用方式有关,即 CPU、GPU、内存、甚至电池。**

> 为避免滚屏方面的问题,CPU 会在显示接下来的内容之前,预先执行加载。而在过去,CPU 需要同时执行这两项任务,结果就是可能导致体验缓慢。

Craig Federighi 在演讲期间曾暗示,**优化过后,CPU 现已能够提升大幅在的响应速度,增加处理额外工作时的始终速率、然后尽可能快地返回闲置状态,**以确保电池续航不受影响。

> iOS 12 还对自动布局框架进行了重大优化,允许 iOS 在屏幕上自动排列 app 元素,而不用考虑设备的类型(比如 iPhone / iPad ),节省人员的额外工作。
>
> 通过这种方式,iOS 12 巧妙地释放了 CPU 和 GPU 的资源,让它们在其它地方发挥更重要的作用。

**此外 iOS 12 在执行任务的时候,还会让 app 使用更少的内存。**

> Apple Insider 详细介绍了这项改进,它被称作 [Automatic Backing Stores]( https://appleinsider.com/articles/18/06/07/how-apple-is-making-animations-smoother-in-ios-12) 。通过深度定义文件的使用(而不是里面的内容),它可以减少内存使用。
>
> 比如苹果在舞台上展示了一对彩色和灰度的照片,但两者都消耗了同样多的内存。

**这些底层方面的改进,显然会让 iOS 12 在基于 A12 平台的新硬件上运行得更棒。**

> 最令人欣慰的是,苹果在 iOS 12 的首个测试版本中就带来了这么大的惊喜 —— 运行速度比 iOS 11.4 快很多、而且几乎没有稳定性问题。

**在 Android 厂商拼命堆运存( RAM )容量的同时,苹果仍然更看重优化的体验:**

> 当前市面上已经有不少 6GB、甚至 8GB RAM 的 Android 旗舰设备,但今年推出的 A12 iPhone 机型,入门款可能为 3GB RAM、高端款也才 4GB RAM。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/461369

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX