@ 2013.06.12 , 20:17
41

苹果OSX「小牛」系统的省电魔法

[-]
WWDC上介绍新小牛系统的省电特性

前两天的世界开发者大会上,苹果强势宣布了新款Macbook的电池续航性能。比如新的13寸Air一次充电能跑满12个小时,比上一代的7小时要多出一大截,假设实测真情况真是如苹果所说能,续航能扛到程序猿都犯困,那他们是怎么做到的呢?最浅显的回答就是新本用了Haswell——但,这只是整个技术改进的一部分。

Intel的Haswell的U所带来的耗电上的改进,只是预料之中的加持。早在1月份,Intel就说新的Haswell将带来「Intel历史上,对于能耗改进的跨时代的飞跃。」而且还说这块U是他们第一次专为超极本和平板设计,新CPU运行在更低的时钟频率和更小的功率上。

在发布会上,没能听到关于「小牛」系统在移动使用耗电上的情况,只是在新技术对于改善功耗上提了几句。直到更多的信息在随后披露的,阐述技术细节PDF上,我们才能对「小牛」系统的省电技术一窥究竟。

用电效能的改进,第一个目标当然就是让电池能撑更久,但苹果还宣称,他们能达到这个目标,却不以损失系统相应速度为代价,通过以下三大技术:

首先:内存压缩技术。和传统思维里的节电技术不一样,苹果的内存压缩技术「自动将最近使用的对象,在内存内部进行压缩到原来的一半大小。」当对象需要再次调用的时候,再解压缩对象。

苹果声称,这种内存压缩/解压缩技术,比起硬盘临时交换空间(swap)要快得多,就算是和最快的SSD固态硬盘相比也是如此,这必须感谢WKdm快速压缩算法(其结果就是,如果把新的系统装在老款机械硬盘的型号上,其省电效能会更明显)。

一份2003年发表的论文(PDF)比较了三种实时内存压缩算法的性能,WKdm压缩和解压缩性能无比优秀,比其它两种算法都要快(很多)。这能节省大量内存,并提高速度(和磁盘swap技术相比),节省磁盘空间。而且苹果还声称:「这能减少系统读写磁盘swap数据的频率,最终改善苹果笔记本的耗电表现。」并只占用非常微小的CPU资源来处理压缩/解压缩的过程。

然后,就是「程序挂起(App Nap)」。这项新的特性强硬限制不在前台操作/可见的程序进入更彻底的挂起状态。(我们一位使用苹果系统的编辑表示,Safari浏览器再后台啥也不干也要占去15%的CPU资源,所以这部分的耗电还是很可观的。)新的策略是当一个程序的窗口处于不可见的状态,且没有音频播放时(所以程序可以通过出点声躲过这种监测。),严格限制程序的资源占用。OSX系统限制的是程序计数器,限制后台闲着的程序向CPU发出中断请求,「通过限制程序频繁地资源请求,极大的改善了CPU的利用效率。」

磁盘和网络活动比起上一版本,有了更严苛的限制。一个被挂起的程序被赋予对网络和磁盘资源访问的「最低优先级」,意味着降低磁盘耗电和加快前台程序的相应速度。「I/O限制减少了后台进程的开销」。

「小牛」系统也降低了UNIX进程的优先级,比挂起的程序还低,以减少对CPU资源的占用。总的来说,这些改变将更多地降低后台程序的开销,对于那些设计为后台全速运行的程序来说,系统将给与更加严厉的限制。

最后,苹果介绍了一种叫做「时钟调度」(Timer Coalescing)的技术,这种技术只在笔记本处于电池供电的状态下开启。OSX系统将采取「恒定CPU计数器」的策略,包括磁盘和网络资源,以及所有请求,像DHCP获取、wifi连接到系统升级通知触发(大部分这类请求,用户都不会察觉到。),因为程序之间没有互相协调配合发起请求动作,所以一台处于闲置状态的macbook可能被各种程序请求骚扰,使得CPU不得不一直处于活动状态,使得CPU和磁盘不能真正进入省电模式。

[-]
没有开启时钟调度,耗电曲线的情况

「时钟调度」机制试图给这种混乱的局面来点规矩。在笔记本使用电池的时候,「小牛」会先扫描所有发来的时钟请求,然后协调所有临近请求的发起时机。这种「调度机制」意味着CPU和磁盘可以一次处理多个程序的请求,然后可以在下次程序集体上访前,先回去接着多睡会儿。

苹果从没有向开发者保证,这种协调机制会在什么时候发起,也就是说,没必要紧张地去改变你的代码。苹果现在只是告诉开发者:「因为大部分的请求源都是周期性的,调度的最有效时间间隔是50~100毫秒,」而且还提到了,那些忙忙叨叨的程序会得到更多的调度支持。比如某程序将计数器设为0.1s,将只有+/-0.0001s的变数,而且听上去「小牛」的调度会有比这更好的近似值。

苹果又宣称,这项计数可以「卧槽~般地增加CPU的休眠时间,」而且给出了以下图例说明:

[-]
应用时钟调度后,耗电性能明显改善。

这项新技术是内核级层面调节CPU的资源使用,而且「小牛」系统会尽量能少用核就少用核,让不用的核全部睡去。加上Haswell的其它改进,苹果真是给电池性能的表现带来了巨大地进步。实际情况如何,我们会继续测试。

微软别忙着拍扁世界了,你倒是学着点啊!

本文译自 Ars,由译者 Junius 基于创作共用协议(BY-NC)发布。


给这篇稿打赏,让译者更有动力
支付宝打赏 [x]
您的大名: 打赏金额:

0.0
赞一个 (0)

TOTAL COMMENTS: 41+1

  1. 2018210

    不叫小妞啊 啊啊啊啊!!!!! 那是加州的地名啊!!!! 不要乱翻好不好啊!!!!!

    [79] XX [7] 回复 [0]
  2. HelloBeauty
    @4 years ago
    2018214

    2003年的论文就有研究啊,看来理论转到应用果然周期很长,以后看到新技术面世不用高兴得太早。

    [19] XX [1] 回复 [0]
  3. 2018216

    不明觉厉

  4. 2018218

    @yuyu: 现在国内都这么叫。总得让人有个中文昵称吧

    上版OSX叫山狮,这版叫小牛也没什么不妥

    [19] XX [11] 回复 [0]
  5. 2018224

    这项计数可以「卧槽~般地增加CPU的休眠时间,」这句翻译很带劲

    [38] XX [1] 回复 [0]
  6. 吃肉肉
    @4 years ago
    2018230

    就是说把休眠时间藏在了工作状态 讲白了就是小MBa学会了打盹

    [23] XX [0] 回复 [0]
  7. 吃肉肉
    @4 years ago
    2018234

    又不被老板发现 绩效不扣 奖金照发

  8. 2018250

    直到现在还是盗用我设计啊……(-_-!)
    我真的很厉害啊……

    [4] XX [16] 回复 [0]
  9. Anubis
    @4 years ago
    2018254

    这种文章看多了会不会木有女朋友?

    [78] XX [2] 回复 [0]
  10. 2018262

    @sein:

    其实感觉突然从猫科捕食动物, 一下子变成了食物…这落差挺大的.

    [10] XX [0] 回复 [0]
  11. 血神之翼
    @4 years ago
    2018268

    @7: 求@sein ban掉这货。

  12. Victor
    @4 years ago
    2018270

    @ETiV: 看起来很好吃的样子。

  13. 2018274

    地名直接英译啦,和牛一点关系都没。之前的名字就是猫科动物,但是这次人家明明白白说了是加州他们设计灵感迸发的地方。和任何动物一点点一丝丝关系都没。

    [12] XX [4] 回复 [0]
  14. 国购
    @4 years ago
    2018276

    操作系统的设计理念十几年来都没啥突破,说到底还是硬件限制。现在除了一味地加核心数量,扩大带宽提升速度,也就想不出啥好点子了。整个系统就是个大的死循环,所谓的创新,也只是给特定情况下的代码加了个分支,或者设定一种中断。说到底还是不够智能,如果你的一切新行为都要我重新设计,我还不如就保持简单。你就当个工控机好了

    [6] XX [12] 回复 [0]
  15. 2018294

    后台下载肿么办= =
    这种tradeoff有点本末倒置

  16. 2018326

    貌似微软4年前就有timer coalesing了。http://blogs.technet.com/b/askperf/archive/2009/10/03/windows-7-windows-server-2008-r2-core-parking-intelligent-timer-tick-timer-coalescing.aspx

  17. 皇家奶牛
    @4 years ago
    2018346

    试用了DP1,偏好面板很多英文地方没翻译过来

  18. 净土
    @4 years ago
    2018352

    美国苹果公司于WWDC2013公布了下一代OS X产品,OS X Mavericks(巨浪)。

    此次新的OS X系统代号”Mavericks”(巨浪,并不是“小牛”,可以理解为新系统发布时的”海浪”背景,和”小牛”不沾边)。新系统的命名打破了以往产品以猫科动物命名的惯例。

    //=========================
    那个大大的冲浪作为背景,编辑看不到吗?

  19. junius_Lou
    @4 years ago
    2018388

    @净土: 唉…… 一个地名,一个动物,现在还有一个巨浪,我们还是等Apple.com.cn的文案出来再定吧。

  20. 2018392

    微软在windows 7阶段,也就是Windows NT6.1时引入了相似的功能
    到了windows 8,也就是Windows NT6.3时,该功能被进一步加强(需要依赖haswell处理器)

    说到底还是haswell的功劳,它的Si0x模式则是功臣

    [11] XX [0] 回复 [0]
  21. 找G点
    @4 years ago
    2018394

    大象艹小牛 牛x大了

  22. 2018400

    @Ziggy: 嗯哼,微软没有苹果那么爱秀罢了。从vista开始每一版windows都有大量新特性,其中可称惊艳的绝对比每次macos更新的多。
    但是在这里吐槽的大多数xp都玩不清楚,所以你也没法指望不是。

    [31] XX [10] 回复 [0]
  23. 2018476

    续航能扛到程序猿都犯困

    我靠!!

  24. Limius
    @4 years ago
    2018492

    @sein
    怎么可以说国内都这么叫就这样翻译,人家WWDC明明白白写着呢。
    望改正吧。

  25. 淫科技代言人
    @4 years ago
    2018514

    淫科技说,很多技术在Windows中早就有了

    除此之外,文件中对苹果此前大书特书的节能技术也有了更多的介绍。在 Mavericks 中拥有像 App Nap 这样的后台节电功能,Timer Coalescing 则能重新安排处理器任务,增加其空闲时间,减少耗电(其实这个功能 Windows 以前就有了)

  26. 2018516

    @Ziggy:
    http://v.youku.com/v_show/id_XNTQxNDE2NTUy.html
    46分55秒
    远处有微软,近处有MIUI,大家都会用这一招。

  27. 深白
    @4 years ago
    2018518

    这不是一个著名的GRE单词么?

  28. junius_Lou
    @4 years ago
    2018520

    @淫科技代言人: 所以windows笔记本的续航问题还是OEM厂商这些猪一般的队友造成的咯?

  29. eddiehwang
    @4 years ago
    2018528

    千万别升,升了之后你的chrome会狂卡无比,除非你不用chrome

  30. 武装暴力熊
    @4 years ago
    2018550

    经常为了优酷60秒无良广告而关声音、切到后台,按小牛的运作机制,广告将永远停在60秒。

  31. junius_Lou
    @4 years ago
    2018560

    @A7: 说实话,我是第一次看雷布斯讲话…OMG,让我想起了我的高中数学老师……

  32. 波波
    @4 years ago
    2018636

    小米那个发布会。。。。。我可以吐槽么。。。。唉。。。。

  33. 2018652

    我用 Ubuntu ,不过感觉 Ubuntu 的确有点费电。

  34. shitool
    @4 years ago
    2018860

    1、Mavericks有特立独行的意思。
    2、Windows一早用这种技术了……那为什么Windows只能撑3~4小时?用户才不关心你用了什么技术,只关心好不好用。
    3、我一个朋友玩硬件和黑苹果的,PC和Mac各种型号机器一大堆,无论什么硬件配置,装OSX总是比装Windows的时候电池耐用一倍。在事实面前Windows应该羞愧。

  35. 2019046

    @shitool:
    1. 无关。
    2. 和硬件有关系。具体的看下一条。
    3. 不知道你的朋友是怎么玩的,我手上的几个笔记本续航就没那么不堪,虽然确实不如mac久,但是考虑到电池容量本身就不如mac,计算下来也差得并不多。重要的是是否正确设置了windows本身(我用裸win7,使用系统自带的“节能”电源模式)。顺便提一句,win8在这方面比win7强悍不少,我的UX21什么事情都没做直接从win7换成win8续航立刻提升了1小时。
    4. 任何东西都是有权衡的,有亮点和缺点,包括操作系统。苹果确实在营销上很有一套,能让用户盯住亮点而自动忽略缺点。

  36. slight19
    @4 years ago
    2019546

    我在后台挂着刷级的游戏看来是又要断线了

  37. ignorant
    @4 years ago
    2019696

    苹果的牛逼之处在于改变了人们的消费习惯 花个大几千买个移动设备已是常态
    在技术上真没有多少进步 这么捧苹果真是看着够受的 感谢应用

  38. 南极大魔王
    @4 years ago
    2020108

    就你们懂!
    苹果就是个SB!windwos早就有的技术拿来这么详细的讲!苹果开发布会的时候,底下那么多开发者也是SB!听到一个windows早就有的技术的时候居然还那么激动的鼓掌。。。

    就你们懂!好不啦?

  39. 2020358

    拜托,你在windows下运行的程序哪和mac运行的程序一样。你看看你在win里运行的程序,mac下还不一定有呢。

  40. 2020368

    算法改变世界。
    windows和mac无可比性。microsoft总喜欢把简单的事情做复杂,mac正相反。另一个不同就是品味,小孩子都能看出来谁优谁劣。

  41. UncleTea
    @4 years ago
    2020560

    @neo:
    but why同样大小电池,同样配置,同样屏分的osx时比win7省电= =

发表评论


24H最赞