3

早上好,

首先,我没有四核,而是 Windows7 上的 i5(双核)。当我的 java 程序启动(Eclipse 上的单线程)并执行无休止的计算时,“Windows 任务性能面板”永远不会显示超过 25-30% 的 cpu 使用率。

我会理解在四核上(一个线程在一个核上运行),但在这里我预计是 50%。事实上,Windows 显示了 4 个 cpu 曲线,所以我认为一个核心在逻辑上被分成 2 个,但最后我的计算机只有两个物理核心。

那么为什么我的上限是 25% 呢?(其他线程正在运行但未被监控,来自监控的错误信息......等等......在 Jvm 中未激活的选项)

感谢您对 jcl 的帮助

4

1 回答 1

8

您的处理器使用超线程,因此 2 个物理内核变为 4 个逻辑内核。

现在,由于您只有一个线程,因此只能使用其中一个逻辑核心 - 即 25% 的可用逻辑核心,因此有上限。如果您将应用程序更改为使用多个线程(假设这在您的特定任务中是可行的),那么您将看到更多的内核被使用。

可能会发现您可以在 BIOS 中关闭超线程,此时我希望 Windows 报告 2 个内核而不是 4 个内核。然后您可能会发现您的应用程序运行得比以前更快 - 但会有该计算中有很多不同的因素。(现代处理器相当聪明,并且会自动执行各种操作——例如,如果它们检测到少量繁忙的内核,则关闭未使用的内核并提高仍在使用的内核的时钟速度。)

于 2013-08-09T12:26:56.927 回答