我发现 Safari 和 Firefox 在下载时都占用大量 CPU(>200% CPU 使用率),谁能解释一下为什么会发生这种情况?在完全重新安装系统之前和之后都发生过这种情况。尽管下载速度很快,但它占用的 CPU 数量相同。我使用的是 Mac OS 10.8。
我也有 Firefox 执行相同操作的图像,但在重新安装过程中意外删除了它们。
答案1
我今天才遇到这个问题,我希望这个答案还不算太晚,但简短的回答是肯定的(对于您的第一个问题“我发现 Safari 和 Firefox 在下载过程中都使用了非常高的 CPU 量(>200%
CPU 使用率),有人能解释为什么会发生这种情况吗?”)和是的(对于您的评论问题“高于百分比是否100%
意味着它在该过程中使用了多个核心?”)。
简而言之,你的 Mac 包含一个多核处理器 - 我猜至少2
因为你正在运行 OS X 10.8 - 它支持超线程,这意味着每个物理核心(本身就是一个物理 CPU)向 OS X 呈现多个“逻辑”核心,OS X 将其视为独立的逻辑 CPU。一个进程最多可以使用每个逻辑核心的 100%,因此n
逻辑核心意味着每个进程的最大n x 100%
CPU 使用率。因此,您的活动监视器(如 Windows 中的任务管理器)会显示每个逻辑核心的 CPU 使用率条(只要它们是,根据 Apple 关于 CPU 使用率的技术文档),并且您会获得与 Firefox 等<= 4
类似的读数。这是157%
不是不寻常的和可能普通的如果您同时运行多个下载、应用程序、游戏等。但请注意:不同的应用程序进程位于用户虚拟内存空间的不同部分,因此也可能看到多个应用程序进程>100%
同时占用 CPU,例如 Firefox157%
和 iTunes200%
等。
这是不可能的查看>100%
单核 CPU 系统中某个进程的 CPU 使用率,除非您使用的报告工具有问题。Firefox 可能会为每个下载生成一个线程(如果您同时进行多个下载),此外还有许多其他线程用于选项卡、渲染等,以及其他正在进行的工作,并且您对该157%
进程的读数清楚地意味着其中一些线程至少同时在两个不同的逻辑核心上运行。读数296%
表示至少使用了三个核心等。多核处理器/多线程操作系统上进程的 CPU 使用率是该进程内运行的所有线程的 CPU 使用率的总和。
注意:在实际操作层面你可能需要咨询这如果您的下载问题仅限于 Firefox 或反复出现。
您可以使用命令(如果您有兴趣,可以使用 BSD API)查找有关计算机中物理/逻辑核心数量的信息sysctl
- 如果您在终端应用程序中执行以下命令:
$ sysctl -e hw | grep "cpu="
你应该看到类似这样的内容(请注意我插入的注释,而不是输出的一部分)
hw.ncpu=4 # no. of cores available to the kernel
hw.activecpu=4 # no. of logical cores actively being used by the kernel
hw.physicalcpu=2 # no. of physical cores
hw.logicalcpu=4 # no. of logical cores