快速快速感觉速度甚至更好 -

Apple的M1是一个快速的CPU - 但由于QoS,M1 Mac感觉更快

Howard Oakley在M1调度和性能方面做得非常深入。

多个Apple促销图像彼此堆叠。“>
          <figcaption class=
放大 /Apple M1是世界级的处理器 - 但它感觉甚至比它的已经令人伟大的规格更快。Howard Oakley做了深度潜水的调查,以了解为什么。

Apple的M1处理器是世界一流的桌面和笔记本电脑处理器 - 但是当涉及通用最终用户系统时,有些东西比快进更好。当然,我们指的是感觉快速与系统会满足用户期望的系统,比以原始速度更可靠地实现。

Howard Oakley - 几个Mac-Native的作者公用事业如鸬鹚,漏风和锑 - 做了一些挖掘来找出为什么他的M1 MAC感觉比英特尔MAC更快,他得出结论,答案是QoS。如果您不熟悉该术语,则为服务质量简短 - 这是关于任务调度的全部。

更多吞吐量并不总是意味着更快乐的用户

有一个非常常见的趋势,使吞吐量粗略地说出“性能”,每单位时间完成的任务。虽然吞吐量通常是最容易测量的度量,但它与人类感知并不相应。什么人类通常注意到不是吞吐量,它的延迟 - 不是任务可以完成的次数,但完成个别任务所需的时间。

在ars,我们自己Wi-Fi测试指标遵循此概念 - 我们测量在合理正常的网络条件下加载仿真网页而不是测量网页(或其他任何其他)的次数的时间所需的时间量可以在运行平坦时加载。

我们还可以看到一个消极的例子 - 其中最快的吞吐量与大约2006年的卓越的用户相对应介绍完全公平的队列(CFQ.)Linux内核中的I / O调度程序。CFQ.可以广泛调整,但在其开箱外配置中,它通过重新排序磁盘读取和写入来最大限度地提高吞吐量以最小化寻求,然后为所有活动流程提供循环服务。

不幸的是,而且CFQ.事实上,实际上是可衡量的,提高了最大吞吐量,它在任务延迟的增加时所做的是 - 这意味着一个适度加载的系统对其用户感到迟钝,导致大型投诉。

虽然CFQ.可以调整较低的延迟,大多数不快乐的用户刚刚用竞争的调度程序完全替换它诺普或者最后期限而不是 - 尽管吞吐量较低,但随着他们的机器感觉的速度,单独的个人延迟减少了桌面/互动用户。

在发现潜伏期阶段的次优吞吐量的次优吞吐量之后,大多数Linux发行版都远离了CFQ.就像他们的许多用户一样。红色帽子爆炸了CFQ.为了最后期限2013年,罗尔7-and Ubuntu在2014年之后不久随后诉讼可靠的tahr.(14.04)释放。截至2019年,Ubuntu有弃用CFQ.完全。

QoS与大血管和苹果m1

当Oakley注意到Mac用户称赞M1 Mac的频率令人难以置信的快速感觉 - 尽管表现测量并不总是回到那些感情的情况 - 他仔细看看MacOS本机任务调度。

MacOS提供四个直接指定的任务优先级 - 从低到高电平,它们是背景公用事业userInitiated, 和UserInteractive.。还有第五级(默认情况下,当手动指定QoS级别时)允许麦斯科斯自行决定任务有多重要。

这五个QoS级别是相同的,无论您的MAC是Intel Power的还是Apple Silicon Power的 - 但QoS如何强加如何变化。在八个核心英特尔Xeon W CPU上,如果系统空闲,宏将在所有八个核心中安排任何任务,而不管QoS设置如何。但在M1上,即使系统完全闲置,背景优先任务专门运行M1的四个效率/低功率冰暴核心,留下四种更高的性能核心闲置。

虽然这使得较低优先级任务ooakley在M1 Mac上测试了10GB测试文件较慢的系统,但在英特尔MAC上,这些操作跨越“空闲系统”到“非常繁忙的系统”。“

运营更高QoS设置还比Intel Mac-MacOS愿意将较低优先级任务转储到的M1更始终如一地执行冰暴核心只留下更高的性能核心卸下并准备好在快速且始终如一地响应userInitiatedUserInteractive.任务需要处理。

结论

Apple为M1 Mac的QoS策略是工作负载中实际疼痛点而不是追逐任意度量的重要例子。留下高性能执行时缺乏态度背景任务意味着他们可以向其致力于他们的全部性能userInitiatedUserInteractive.他们进来的任务,避免了系统没有响应甚至“忽略”用户的看法。

值得注意的是,这肯定很重要可以采用与八核的英特尔处理器相同的策略。虽然在x86上没有类似的大/小分裂核心性能,但没有什么可以停止任意宣布一定数量的核心的操作系统背景只要。是什么让Apple M1感觉得如此之快并不是其四个核心比其他核心慢 - 这是操作系统牺牲最大吞吐量,支持降低任务延迟。

值得注意的是,互动改善M1 Mac用户看到在第一个地方正常定期的任务依赖于调度 - 如果开发人员不愿意使用低优先级背景队列适当的时候,因为他们不希望他们的应用似乎很慢,每个人都失去了。Apple的异常垂直的软件堆栈可能在这里有所帮助,因为即使可能会使他们的代码“看起来很糟糕”,苹果开发人员更有可能优先考虑整体系统响应能力。

如果您对M1和英特尔MAC上应用了QoS级别的更多粗略细节,以及他们制作的影响 - 我们强烈建议验证Oakley的原创作品这里这里,在麦斯卡斯活动监视器上完成CPU历史截图,因为Oakley在两种不同架构上的各种优先级运行任务。

你必须评论。

渠道ARS Technica