18

I am trying to check the performance of a program. I refer this post get OS-level system information. When Runtime.availableProcessors() executes, I get an answer of 4. I read availableProcessors() but it tells that this method returns number of processors

  1. Can anyone explain what is mean by number of processors ?
  2. Why am getting 4 as result ?

I am using Windows 7 core i5 4gp.

4

5 回答 5

28

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

这些行在number of logical coresWindows 和其他操作系统中返回。

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

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

于 2012-08-09T06:38:34.243 回答
21

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

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

于 2012-08-09T06:39:21.523 回答
3

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

于 2012-08-09T06:38:56.177 回答
3

您有一个多核处理器(在您的情况下,它看起来像是Lynnfield)。就信息而言,每个内核都算作一个单独的 CPU(一个单独的处理器),因为每个内核都可以与其他内核同时执行指令。

于 2012-08-09T06:37:41.687 回答
0

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

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

于 2012-08-09T06:43:58.250 回答