苹果 M1 用着舒服的原因找到了,英特尔:学到了,下次我也用

砍柴网  •  扫码分享

来源:量子位

苹果 M1 又快又省电,除了跑分很高之外,实际体验上也有一种流畅感。

苹果到底怎么做到的?

原来除了硬件性能强大以外,软件层面也有优化技巧。

一位名叫 Hoakley 的程序员偶然发现了其中的秘密。

这老哥总之是有钱,M1 和英特尔版的 iMac 都买了。业余时间他喜欢自己开发点实用小工具,比如压缩软件。

老哥在后台测试自己的压缩程序时发现,M1 上只有 4 个核心在跑,还有 4 个 闲着

苹果 M1 用着舒服的原因找到了,英特尔:学到了,下次我也用

换到英特尔上试试,因为还没用到虚拟核心,是由 8 个真实核心共同承担了工作。

苹果 M1 用着舒服的原因找到了,英特尔:学到了,下次我也用

回到 M1 里仔细一看,使用率高的还不是性能高的那 4 个,而是 " 效率核心 "。

苹果 M1 用着舒服的原因找到了,英特尔:学到了,下次我也用

4 核有难,4 核围观

在 M1 芯片的 8 个 CPU 核心里,有 4 个被称作 "Firestorm" 的 性能核心 ,另外 4 个是 "Icestorm" 效率核心 ,性能弱一些,不过 功耗更低

研究了一下,老哥发现是自己把任务优先级设低了,提高以后,就能让 4 个性能核心参与进来。

老哥恍然大悟,原来这就是苹果的策略。

让优先度低的任务只占用效率核心,慢点就慢点吧,谁让你优先度低呢。

性能核心保持空闲状态,随时应对突发的高优先度任务。

App 启动速度快,切换流畅的原因找到了: 4 个高性能的核心一直候着呢

非对称核心

MacOS 给开发者提供了 4 种优先级,分别是 后台  ( background ) 、 实用  ( utility ) 、 用户发起的  ( userInitiated ) 、 用户交互的  ( userInteractive ) 。

如果不指定的话就归为默认,由操作系统自己安排。

Hoakley 老哥把自己的压缩软件改造成可以随时调整优先级的,然后准备了一个 10GB 的文件开始测试。

在英特尔 CPU 上,最高优先级完成压缩需要 23.3 秒,调成最低优先级需要 26 秒。

在 M1 上,最高优先级运行只要 14.1 秒,调成后台优先级直接涨到 101 秒

老哥认为,牺牲一些不重要任务的运行速度,换来的使用体验上的流畅,太值了。

比如备份文件就不用着急,即使慢到用 15 分钟备份不到 1G 也无所谓。

历史上也有这样一个反面教材。

2006 年的时候 Linux 内核引入了一种叫 完全公平队列  ( Completely Fair Queuing ) 的 I/O 调度机制。

虽然在理论上能提升总体的运行效率,但用户正需要完成的任务总是有一些延迟才能执行。

因为用户体验太差,最终完全公平队列被大多数 Linux 发行版放弃了。

不过也有人不喜欢 M1 的这种机制,他认为在笔记本上这样做可以延长续航。但台式的 iMac 上真的要牺牲运行速度吗?反正都是插电源的。

英特尔:在学了在学了

其实 CPU 内核分性能核心和效率核心这件事, 手机 上的 Arm 芯片早就在做了。

甚至高通还在研发中的 骁龙 875 ,被曝光在这种架构基础上还增加了一个 " 超大核心 "Cortex X1。总共 1+3+4 构成 8 个核心。

苹果 M1 将 Arm 平台带到了 PC 市场,让英特尔开了眼。

在 CES2021 上曝光的 12 代酷睿 Alder Lake ,英特尔也宣布要区分两种核心了。

AMD 知道了这个消息后,直接把挤牙膏的 Zen3+ 项目给 取消 了,转而全力研发下一代 Zen4 架构处理器,代号 Raphael,预计 2022 年发布。

不知道 AMD 会不会选择跟上这个潮流。

随意打赏

提交建议
微信扫一扫,分享给好友吧。