为什么我的 CPU 仅主要使用一个核心?

为什么我的 CPU 仅主要使用一个核心?

它每次只从其中一个 CPU 加载 100%。这是故意的吗?它不应该尝试执行 25/25/25/25 吗?

英特尔 i5-3320M - 2,60GHz x 4

我的朋友在 win10 上正在负载平衡“正确”加载同一个文件。(.osm我们在 IntelliJ 中解析的文件非常大)

我的系统监视器图像

答案1

4 × 0.25 与 1 相同。

它看起来像单线程任务以循环方式调度在多个 CPU 上运行,Windows 正是通过这种方式在不同的芯片区域之间分配计算负载(因此也分配电气和热负载)来改善散热。这与多线程无关,只是 Windows 和 Linux 不同调度策略的产物。

答案2

看起来你有一个非常繁忙(不是多线程)的程序占用了一个 CPU。我敢打赌,你会发现一个 CPU 负载几乎达到 100% 的进程处于异常状态(“几乎崩溃”) - 例如 Firefox 打开了很多标签并且 JavaScript 消耗大量电量。ps aux在控制台上运行应该可以找到罪魁祸首。内存消耗的稳步增加也可能是此进程造成的。大多数其他进程在其他 CPU 上或多或少分布良好,给你带来预期的 10-20% 负载。

答案3

只有当程序允许多线程时才有可能。如果任务本身不支持多线程,则无法并行化。例如,牛顿-拉夫森方法。

但是,你的 CPU 并不是每次都主要使用同一个核心,而是随机为程序选择其中一个核心。例如,每次运行程序时,不同的核心都会达到 100%。

系统监视图:

在此处输入图片描述

相关内容