为什么java单线程在双核(i5)上的上限是25%

  • 本文关键字:i5 java 单线程 双核 java cpu
  • 更新时间 :
  • 英文 :


早上好,

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

我可以理解在四核上(线程在内核上运行),但在这里我预计会有50%。事实上,Windows显示了4条cpu曲线,所以我假设一个内核在逻辑上被一分为二,但最终我的计算机只有两个物理内核。

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

谢谢你的帮助当做jcl

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

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

可能会发现您可以在BIOS中关闭超线程,在这一点上,我希望Windows报告2个内核,而不是4个。然后,您可能会发现您的应用程序比以前运行得更快,但在计算中会有很多不同的因素。(现代处理器相当智能,可以自动完成各种事情,例如关闭未使用的内核,如果检测到少量繁忙的内核,则可以提高仍在使用的内核的时钟速度。)

最新更新