如何正确理解苹果“降速门”中降速的意思?到底降了多少呢?

如何正确理解苹果“降速门”中降速的意思?到底降了多少呢?

最近苹果刻意降速的新闻可是占据了各个头条,吓得我赶紧取消了老婆iPhone 7手机的系统更新。所有的新闻看起来似乎是升级系统后老手机包括还算新的iPhone 7速度也会下降不少。甚至哈佛大学也来凑热闹,公布了一项谷歌搜索趋势研究,分析了历年 iPhone 发布前后,网友们搜索“苹果手机变慢”关键词的峰值。结果发现,“iPhone Slow”的搜索趋势,正好与苹果历次新机的发布时间相吻合:

并和三星做了对比,发现并未与新款三星手机发布的时间重合。结果暗指苹果故意弄慢老手机,逼迫用户换机。一时间苹果又为它的傲慢付出了代价,成为千夫所指,舆论谴责甚嚣尘上,甚至被告上法庭。

单纯价值判断总是轻松的,可以为大脑节约不少能量。但作为可以独立思考的人,我们在做出价值判断之前,应该确实了解一下苹果公司的辩解,并分析它的辩护有没有道理,再做出自己独立的判断。

事件起因

时间最早可以追述到1年多前,在寒冷的天气里,iPhone4/5会在电池还有40%甚至60%的情况下,突然断电,而且无法开机,直到插上电源。在插上电源后,电池电量直接变成正常,用户抱怨很大。于是苹果公司推出了新的系统升级,用户惊喜的发现,问题解决了,断电的情况没有再出现(参考资料3)。于是一切都恢复了平静,世界再次和平。

但另一个声音慢慢出现了:“升级系统后,手机变慢了!”。大家开始只是猜测,没有实证,直到Reddit的一个帖子引起了大家的注意(参考资料2),宣称有证据指出,让旧机器变慢是苹果的刻意做法,这一消息很快传遍了全球。Geekbench(没错,就是那个给A11打高分的测评软件)创始人John Poole于是亲自跑分做了验证(参考资料1),证实相对iOS 10.2.1,11.2.0确实对CPU性能做了throttling。GeekBench的结果原先总是倾向于苹果,这次却爆了这个新闻,苹果公司坐不住了,发布了官方声明。

我们看一下苹果公司怎么说的:

Our goal is to deliver the best experience for customers, which includes overall performance and prolonging the life of their devices. Lithium-ion batteries become less capable of supplying peak current demands when in cold conditions, have a low battery charge or as they age over time, which can result in the device unexpectedly shutting down to protect its electronic components.
Last year we released a feature for iPhone 6, iPhone 6s and iPhone SE to smooth out the instantaneous peaks only when needed to prevent the device from unexpectedly shutting down during these conditions. We’ve now extended that feature to iPhone 7 with iOS 11.2, and plan to add support for other products in the future.

中文版:

我们的目标是向客户提供最好的体验,其中包括总体性能和延长设备使用寿命。在低温环境中,锂离子电池提供峰值电流的能力会降低,随着时间推移,存储的电量会减少,这会导致设备为保护电子部件而关机。去年我们针对iPhone 6、iPhone 6s和iPhone SE发布了一个特性,在需要时平抑瞬时峰值电流,防止设备在上述情况下关机。在iOS 11.2中,我们为iPhone 7发布了这一特性,并计划在未来使之支持其他产品。

GeekBench的用词比较晦涩,throttling不是IT人士估计不知道意思。而苹果公司声明更加具有”艺术“:Smooth out the instantaneous peaks only when blabla和”在需要时平抑瞬时峰值电流“。而且这还是一个"feature"。这些背后真是的情况如何?

实验数据

我们先看一下John Poole的实验结果:

iPhone 6S和10.2.0 iOS
iPhone 6s和 11.2.0 iOS

上面两个图是KDE图(Kernel density estimation),横轴是GeekBench4在iPhone 6s的Benchmark数据,纵轴是密度。

如何理解这两个图呢?其实很简单,这是个分布曲线图,他测试了很多iPhone 6s,发现在运行10.2.0时候,benchmark结果集中在2500分;而在运行11.2.0时,benchmark的结果分散在很多地方,中间有很多尖峰。有部分还在2500分,而也有很大部分集中在1500分,甚至1000分!性能下降了一半多!

这说明从10.2.0到11.2.0升级之后,iphone 6s可能性能会下降,而且可能会大幅下降!那么到底为什么有的下降多,有的几乎不降低呢?原因在于电池,如果电池没有怎么消耗,则性能不变或下降不大,电池越老,性能下降越大。这个可以从一位叫做Sam的用户那里得到印证。他原来的iPhone手机很慢,他用DasherX测试发现手机频率最高600MHz:

在更换了新的电池,CPU变成了1400MHz,上升了2倍多:

Why & How

苹果公司为什么要这么做呢?当然是电池的老化问题。锂离子电池能量密度很大,而手机的电池又是里面能量密度最大的类型Li-Cobalt:

锂离子电池优点很多,但是也有缺点:需要特殊电路保护防止电压/电流过载,这些保护电路构成了Smart Battery,我们在将来会专门撰文介绍它是如何供电、充电以及和CPU交互的(zhuanlan.zhihu.com/p/32)。这里需要强调锂电池的防过载阈值会随着老化和温度降低而降低。这就解释了为什么前面iPhone手机断电的问题。在温度降低后,老化的电池在iPhone需要大规模算力的时候,输出电流触发了智能电池的保护,而自动断电了。而苹果的办法就是规避这种情形,显然武断地提高保护阈值太冒险了,那么只有从算力上打算盘了。

如何限制算力呢?读过我们专栏关于CPU系列的文章的同学应该会回忆起我们介绍CPU主频的一系列文章:

CPU省电的秘密(一):EIST

睿频:榨干CPU所有的潜力(CPU电源管理系列番外篇)

为什么CPU的频率止步于4G?我们触到频率天花板了吗?

CPU能用多久?会不会因为老化而变慢?

我们就会知道CPU主频是一个基频乘以倍频(ratio)来得到的,X86是这样,ARM也是。所以苹果公司应该是通过锁定最高倍频的方式,限制系统的最高性能。并且电池越老,锁定的值越低。这就是所谓的"Smooth out"了。

对用户的影响

看到性能下降一半多,很多人要大惊失色了。其实,大部分用户平时并不会触及最高倍频,影响并不大。如果大家手机一直在最高倍频下工作,很快手机就没电了。只有在玩大型游戏等等时候,会碰到这个问题,而且用户会发现性能下降十分严重。GeekBench等测试软件往往会将性能推到极限,该问题暴露的也更加彻底。

结论

我可以明确的说,我不喜欢苹果。在我小的时候,AppleII启迪了我,是我踏入计算机世界的原因,iPhone的推出更是开启了一个时代。但现在苹果带给我的更多的是傲慢、压抑和冰冷,曾经高冷的微软倒是慢慢温情脉脉起来。相对苹果手机,我更喜欢安卓系统,也许是我的屌丝性格加上安卓的开放和Linux的自由吸引了我。但我并不反对老婆变成苹果的拥趸,每个人都有自己的选择,而我更爱选择的自由。

苹果的辩护目前看来是站得住脚的,高通的CPU也有过发热太大被手机厂商锁到低频的情况。但是我并不欣赏苹果的做法。我认为充分告知用户,让用户自己做出选择会是个好主意。也许苹果认为让用户在死机和降频之间选择,用户一定会选择降频,还会徒增烦恼。于是苹果“大大”主动帮助用户解决了选择的烦恼,毕竟苹果总是自我标榜,要“教育”消费者,消费者并不知道自己要什么。也许这就是我多年拒绝苹果手机的原因:选择并不可怕,可拍的是被选择和没有选择!

最后请大家思考一下:为什么苹果会爆出来降频问题,而三星等并没有?电池不是都要老化吗?

我的思考公布在下一期的其他里:zhuanlan.zhihu.com/p/32

后记

苹果于昨晚2017.12.29做出道歉,就其备受争议的降低老款iPhone手机速度以保护电池稳定性的决定致歉,表示不会故意缩短任何产品的寿命。同时提出了解决方案:

苹果将保修期外的iPhone电池更换价格从从79美元降至29美元,持续时间为1月下旬到2018年12月并且将在明年早些时候推送一个新的系统更新,使得用户能知道更多有关手机电池的状态信息。

你接受它的道歉吗?

欢迎大家关注本专栏和用微信扫描下方二维码加入微信公众号"UEFIBlog",在那里有最新的文章。同时欢迎大家给本专栏和公众号投稿!

用微信扫描二维码加入UEFIBlog公众号

参考资料:

[1]: iPhone Performance and Battery Age

[2]: PSA: iPhone slow? Try replacing your battery! • r/iphone

[3]: Latest iOS 10 update has significantly reduced iPhone 6 and 6S random shutdown issues

[4]: TeckFire (u/TeckFire) - Reddit

编辑于 2017-12-29

文章被以下专栏收录

    从首次运用于Intel 安腾处理器,到第一版统一的可扩展固件接口(UEFI)规范出版,无论是在高性能服务器,移动设备或是深度嵌入式设备等,UEFI已在所有平台完全淘汰了BIOS。这里有关于UEFI的一切。