% CPU
又称:CPU百分比、CPU超过100%
简要回答
“% CPU”是某个进程占用的处理器能力份额,按单个CPU内核计算。每个内核各算100%,所以同时使用多个内核的进程可以显示超过100%。
活动监视器中的“% CPU”列告诉你某个进程让处理器有多忙。100%表示这个进程相当于占满了一个内核。在有八个内核的Mac上,所有进程加起来的上限是800%。
数值高不一定有问题。导出视频、编译代码或为文件建立索引,本来就会在一段时间里占用大量CPU。只有当你没让某个进程做任何事,它却一直居高不下时,才算是问题。
为什么“% CPU”会超过100
活动监视器会把一个进程在每个内核上花的时间加起来。如果一个App同时在三个内核上满速运行,就会显示大约300%。对于视频编辑器、编译器和浏览器这类为多线程而设计的App,这很正常。
“CPU”标签页底部的“系统”“用户”和“闲置”数值则不一样。它们描述的是整个处理器,所以三者加起来是100%。
“% CPU”没有告诉你的事
“% CPU”衡量的是内核有多少时间在忙,而不是内核跑得有多快。在Apple silicon上,性能核心和能效核心都可能显示100%,但完成的工作量差别很大。
它也看不出App是否响应。一个App可能在等待某样东西时卡死,CPU却是0%;也可能占着400%,依然响应正常。
如何找出是什么在占用CPU
打开活动监视器,点按“CPU”标签页,再点按“% CPU”列标题,从高到低排序。观察几秒钟,因为每次更新数值都会变。
在“终端”中,top -o cpu会显示同样按CPU占用排序的列表。按q退出。
如何查出你的Mac上“% CPU”的最大值
“% CPU”的上限是100%乘以macOS可以调度工作的内核数。你可以在“终端”中查到这个数字,不必去猜。
- 从“应用程序”>“实用工具”中打开“终端”。
- 运行
sysctl -n hw.logicalcpu。它会输出逻辑内核数。 - 把这个数字乘以100。这就是所有进程加起来能显示的最大“% CPU”,也是单个进程占满所有内核时能达到的最大值。
- 在搭载Apple silicon的Mac上,运行
sysctl hw.perflevel0.logicalcpu hw.perflevel1.logicalcpu,查看这些内核中有多少个性能核心、多少个能效核心。
Apple silicon和Intel:怎样才算一个内核
在支持超线程的Intel Mac上,每个物理内核会显示为两个逻辑内核。sysctl -n hw.physicalcpu显示物理内核数,sysctl -n hw.logicalcpu显示逻辑内核数,而“% CPU”是按逻辑内核数计算的。所以一台有四个物理内核的Intel Mac,可以显示某个进程占用高达800%。
Apple silicon不使用超线程,所以物理内核数和逻辑内核数相同。Apple silicon的不同之处在于性能核心和能效核心的搭配。在能效核心上占用100%的进程,完成的工作比在性能核心上占用100%的进程少。
如果你想知道某个App是否在Apple silicon上原生运行,选取“显示”>“列”并打开“种类”。原生App显示“Apple”,通过Rosetta转译运行的App显示“Intel”。
如何判断App是否真的占用了过多CPU
Apple指出,大多数时候你的Mac只用了一小部分处理能力。数值高,但你说得出原因,那就没问题。以下迹象才说明真的有问题:
- 你没在用这个App,它却连续几分钟居高不下。
- 它稳定在100%左右一动不动。这通常意味着有一个线程陷入了循环,占满了一个内核。
- App待在后台时,它的“CPU时间”列仍在快速攀升。
- 同时风扇变响、Mac摸起来发热,或者电池掉得比平时快。
- 关掉引发这些工作的窗口、文稿或标签页后,数值仍然不降。
某个App让CPU一直忙碌怎么办
- 在活动监视器中点按“CPU”标签页,按“% CPU”排序。观察一分钟,以免被短暂的峰值误导。
- 如果这个进程是帮助程序,选取“显示”>“所有进程,分层显示”,看看它属于哪个App。
- 存储你的工作,然后正常退出App。如果它没有响应,选择它并使用“强制退出”。
- 再次打开App。如果CPU占用又莫名其妙地升高,就看看开发者有没有发布更新。
- 如果问题反复出现,在活动监视器中对该进程取样,并发给开发者。取样会显示App当时在做什么。
常见问题
Mac上“% CPU”超过100是什么意思?
表示这个进程同时使用了不止一个CPU内核。每个内核算100%,所以占满两个内核的进程会显示200%。
App的“% CPU”多少算正常?
你没在用的App,大多数时候应该接近0%。短暂的峰值很正常。后台App连续几分钟居高不下,就值得仔细看看。
为什么什么都没开,Mac的CPU占用却很高?
macOS会运行后台任务,比如“聚焦”索引、照片分析和备份,而且常常趁Mac闲置时进行。这些任务完成后,占用通常就会降下来。
Mac上CPU占用100%是坏事吗?
本身不是。100%表示一个内核完全忙碌,这在导出或编译时很正常。只有在App本该闲着时还一直如此,才是问题。
为什么“CPU负载”图表看起来还空着一半,某个App却显示400% CPU?
单个进程的“% CPU”是按一个内核计算的,而“系统”“用户”和“闲置”数值描述的是整个处理器。在有八个内核的Mac上,占用400%的进程大约用了总量的一半。
活动监视器多久更新一次“% CPU”?
你可以通过“显示”>“更新频率”来选择:“非常频繁(1秒)”“频繁(2秒)”或“一般(5秒)”。Apple指出,更新越快,本身也可能影响性能。
相关条目
分步指南:哪个App在占用CPU或内存。
想找比活动监视器更好的工具?请看Mac上最好用的活动监视器替代品,或者浏览术语表中的所有条目。