我正在尝试检查程序的性能。我推荐这篇文章get OS-level system information。 Runtime.availableProcessors()
执行后,我会得到 4 的答案。我读了availableProcessors(),但它告诉我这个方法返回处理器数
我正在使用Windows 7核心i5 4gp。
答案 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_i5和http://en.wikipedia.org/wiki/Hyper-threading。
答案 2 :(得分:3)
您有一个multi-core processor(在您的情况下,它看起来像是Lynnfield)。出于信息的目的,每个核心都被视为一个单独的CPU(一个单独的处理器),因为每个核心可以与其他核心同时执行指令。
答案 3 :(得分:3)
它没有提供jvm进程可用的核心。如果启用超线程,它可能会大于实际值。
答案 4 :(得分:0)
在这种情况下,“处理器”是“能够独立执行的硬件”,即cpu 核心。
它不是“处理器包” - 您购买的单个硬件单元(实际上是一个包中的4个独立CPU)