调用Runtime.getRuntime()。availableProcessors()

时间:2012-08-09 06:34:24

标签: java windows performance runtime

我正在尝试检查程序的性能。我推荐这篇文章get OS-level system informationRuntime.availableProcessors()执行后,我会得到 4 的答案。我读了availableProcessors(),但它告诉我这个方法返回处理器数

  1. 任何人都可以解释处理器数量的含义吗?
  2. 为什么结果是4?
  3. 我正在使用Windows 7核心i5 4gp。

5 个答案:

答案 0 :(得分:17)

正如您所读到的, availableProcessors()是一种返回number of processors available to the JVM的方法。 4 表示当前可用于JVM的处理器数量。

这些行会在Windows和其他操作系统中返回number of logical cores

在支持超线程四核Core i7 的计算机上,它将返回 8

在具有四核Q6700 的计算机上,此方法将返回 4

答案 1 :(得分:15)

处理器的数量基本上是能够运行代码的执行引擎的数量。其中一款i5型号是4核CPU,即i5-7系列。这些可能是物理上不同的处理器(即使它们存在于同一芯片内),或者当您使用超线程时它们可能是逻辑处理器。

有关详细信息,请参阅http://en.wikipedia.org/wiki/Intel_Core#Core_i5http://en.wikipedia.org/wiki/Hyper-threading

答案 2 :(得分:3)

您有一个multi-core processor(在您的情况下,它看起来像是Lynnfield)。出于信息的目的,每个核心都被视为一个单独的CPU(一个单独的处理器),因为每个核心可以与其他核心同时执行指令。

答案 3 :(得分:3)

它没有提供jvm进程可用的核心。如果启用超线程,它可能会大于实际值。

答案 4 :(得分:0)

在这种情况下,“处理器”是“能够独立执行的硬件”,即cpu 核心

它不是“处理器包” - 您购买的单个硬件单元(实际上是一个包中的4个独立CPU)