小编FPP*_*FPP的帖子

如何利用 Apple Silicon 上的高性能内核

我开发了一个 macOS 应用程序,它严重依赖多线程(呼叫中心模拟器)。它在我的 iMac 2019 上运行良好,并很好地填充了所有核心。在我的测试场景中,它模拟了应用程序。1.4 米奥。总共 100 次迭代中的电话呼叫,每次迭代作为并行调度队列上的调度项。

\n

Intel iMac 上的核心使用情况

\n

现在我买了一台配备 M1 Apple Silicon 的新 Mac mini,我很想看看该测试机的性能如何发展。嗯,它\xe2\x80\x99 还不错,但没有我预期的那么好:

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
系统期间
iMac 2019、英特尔 6 核 i5、3.0 GHz、Catalina macOS 10.15.719.95秒
Mac mini、M1 8 核、Big Sur macOS 11.2、Rosetta226.85秒
Mac mini,M1 8 核,Big Sur macOS 11.2,原生 ARM17.07 秒
\n
\n

进一步研究后,我注意到在模拟开始时,M1 Mac 的所有 8 个核心都被正确填满,但几秒钟后,只剩下 4 个高效核心被使用。

\n

M1 Mac mini 上的核心使用情况

\n

我已阅读 Apple 文档 \xe2\x80\x9eOptimize for Apple Silicon with Performance and Efficient Cores\xe2\x80\x9c 并仔细检查迭代的调度队列是否设置正确:

\n
let simQueue = DispatchQueue.global(qos: .userInitiated)\n …
Run Code Online (Sandbox Code Playgroud)

macos performance multithreading apple-m1

2
推荐指数
1
解决办法
2740
查看次数

标签 统计

apple-m1 ×1

macos ×1

multithreading ×1

performance ×1