Amith
Amith

Reputation: 1967

Runtime.getRuntime().availableProcessors()

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.

Upvotes: 23

Views: 46977

Answers (5)

talha2k
talha2k

Reputation: 25483

As you've read, availableProcessors() is a method that returns the number of processors available to the JVM. 4 means the number of processors currently available for JVM.

These lines return the number of logical cores on Windows and in other operating systems.

On a computer with a quad-core Core i7 supporting Hyper-Threading, it will return 8.

On a computer with a quad-core Q6700, this method will return 4.

Upvotes: 37

paxdiablo
paxdiablo

Reputation: 882336

The number of processors is basically the number of execution engines capable of running your code. One of the i5 variants is a 4-core CPU, the i5-7 series. These may be physically distinct processors (even though they exist inside the same chip) or they may be logical processors when you're using hyper-threading.

See http://en.wikipedia.org/wiki/Intel_Core#Core_i5 and http://en.wikipedia.org/wiki/Hyper-threading for more detail.

Upvotes: 22

Nirmal- thInk beYond
Nirmal- thInk beYond

Reputation: 12064

It gives no of cores that are available to jvm process. it may larger that actual if hyper threading is enable.

Upvotes: 3

Bohemian
Bohemian

Reputation: 425298

In this context, a "processor" is "hardware capable of independent execution", ie a cpu core.

It is not the "processor package" - the single hardware unit you buy (that is actually 4 independent CPUs in one package)

Upvotes: 0

mikołak
mikołak

Reputation: 9705

You have a multi-core processor (in your case, it looks like it's Lynnfield). Each core counts as a separate CPU (a separate processor) for the purpose of the information, since each core can execute instructions at the same time as the others.

Upvotes: 3

Related Questions