以防有人看错标题,先来说明一下,这里讲的单纯说的是性能,而不是综合体验。并不是说因为对散热的压力,重量,功耗对电池的压力等因素综合下来让 M1/M2 综合分数会更高。
这里是一篇讨论 M1 核心调度的 blog
https://eclecticlight.co/2022/04/25/how-macos-manages-m1-cpu-cores/
这里是译者稍微修改版的译文
之前看文章的时候就想过,这种针对 E 集群调度
「最低 QoS 线程只在 E 集群上运行」的规则始终不变。
的方法有没有可能导致 M1/M2 在某些特定场景下性能更差。刚好这几天被我遇到了。
前段时间拿到了新 iPhone ,来给老 iPhone 备份,恢复到新 iPhone 上的时候发现在一台 NUC11 上预计完成备份的时间特别长,打开任务管理器看到任务跑满了单核。
猜测是因为加密备份性能达到了瓶颈。于是立刻停止备份,改用 M1 Max 的 MacBook Pro 来做备份和恢复。
在操作过程中关注了一下 M1 Max 里的各个核心负载。2 颗 E 核心长时间满载,8 颗 P 核心一直围观。
实际上对备份的加密耗时综合成绩还是比 NUC11 好很多的。但同时我也在想,如果有人的主要工作内容就是来做这些最低 QoS 线程的任务。那 2 核的 E 集群岂不是性能要显著低于 4 核的 E 集群了?
所以除了文章了提到的那些任务,以及加密 iOS 备份以外,还有什么线程是最低 QoS 的呢?
1
Satelli 2022-10-25 08:10:30 +08:00
同个博客的文章。
https://eclecticlight.co/2022/01/02/last-week-on-my-mac-on-m1-chips-1-1-4/ > On an original M1, with its four E cores, low QoS ‘background’ processes run with the core clock speed at around 1000 MHz... The two E cores on an M1 Pro are managed differently... when a second process is added... the clock speed is doubled to nearly 2000 MHz. The effective throughput then matches that of the original M1’s four E cores still running at 1000 MHz... 总结是干 Low QoS 的“重活”时,M1 Pro/Max 的 2 颗 E 核和 M1 普通版的 4 颗 E 核性能基本等同。 |
2
aireason 2022-10-25 08:48:21 +08:00
我确实常有发现,有时候 m1 pro 两个 E 核都满载了,其他几个大核还在围观,纹丝不动
|
3
dingwen07 2022-10-25 08:50:42 +08:00 via iPhone
之前遇到过的:
M1 Pro 的 Xcode 更新装了半天 M1 很快 看了下 iStats 好家伙安装进程全在小核心上跑,M1 Pro 只有两个 |
4
Leonard 2022-10-25 08:56:11 +08:00
为啥 M1Pro/Max 不给 4 个 E 核
|
5
MrLonely OP @Satelli 文章看完了。多谢分享。
不过文章里并没有提到这背后的原因。那理论上来说苹果是不是也可以选择让 M1/M2 的 4 个 E 核跑到 2GHz ?还是说这不同的 E 核策略是因为芯片的 E 核物理上有所不同? |
6
Satelli 2022-10-25 09:33:17 +08:00
@MrLonely 不太清楚 M1 E 核为什么不提频。博主也做过 M1 Pro/Max 的插电 /仅电池供电的测试。
https://eclecticlight.co/2021/11/04/m1-pro-first-impressions-2-core-management-and-cpu-performance/ > Differences in performance were much greater on the E cores, where they also varied according to whether the MBP was running on battery alone: M1 0.409 s (100%) M1 Pro on battery 0.340 s (83%) M1 Pro on mains 0.169 s (41%) |
7
PerFectTime 2022-10-25 10:12:42 +08:00
有这个感觉,之前的 M1 MacMini 再跑项目构建的时候要 37 秒,M1 Max 构建 56 秒
|
8
MrKrabs 2022-10-25 11:34:18 +08:00
那是红富士写死了一些服务进程的 qos ,你自己的程序默认跑当然是大核
|
9
2NUT 2022-10-25 19:55:02 +08:00
那这调度算法也太傻了吧
|