- Laufzeit.getRuntime().availableProcessors()
Ich versuche zur überprüfung der Leistungsfähigkeit eines Programms. Ich beziehe mich in diesem post OS-level-system Informationen. Wenn Runtime.availableProcessors()
führt, bekomme ich eine Antwort von 4. Ich lese availableProcessors(), aber es sagt, dass diese Methode gibt die Anzahl der Prozessoren
- Kann mir jemand erklären, was es bedeutet, durch die Anzahl der Prozessoren ?
- Warum bin immer 4 als Ergebnis ?
Ich bin mit Windows 7 core i5-4gp.
- Sie haben quad-core-Prozessor-Maschine ?
- oder ein dualcore mit hyper-threading ?
- Nicht alle i3, i5 oder i7-sind die gleichen. Ein i3 kann mit einem oder zwei Kernen mit oder ohne hyper-threading. Ein i7 kann 4 oder 6 Kerne. Es könnte nützlich sein, um Ihre genaue Modell auf der intel-website. Hier ist ein Beispiel. ark.intel.com/products/52210/... Beachten Sie, wie viele Möglichkeiten es gibt!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Anzahl der Prozessoren ist im Grunde die Anzahl der Ausführungs-engines in der Lage Ihren code ausführen. Einer der i5-Variante ist eine 4-core-CPU, der i5-7-Serie. Diese können physisch getrennten Prozessoren (auch wenn Sie existieren innerhalb der gleichen chip) oder Sie können die logischen Prozessoren, wenn Sie mit hyper-threading.
Sehen http://en.wikipedia.org/wiki/Intel_Core#Core_i5 und http://en.wikipedia.org/wiki/Hyper-threading für mehr detail.
Als Sie gelesen haben, availableProcessors() ist eine Methode, die zurückgibt, die
number of processors available to the JVM
. 4 bedeutet, dass die Anzahl der Prozessoren, die derzeit für die JVM.Diese Zeilen zurückgeben, die
number of logical cores
auf Windows und anderen Betriebssystemen.Auf einem computer mit einem quad-core core i7 Unterstützung Hyper-Threading, wird es wieder 8.
Auf einem computer mit einem quad-core Q6700, diese Methode zurück 4.
Haben Sie eine multi-core-Prozessor (in Ihrem Fall, wie es aussieht ist es Lynnfield). Jeder Kern zählt als eine separate CPU (einen separaten Prozessor) für die Zwecke der Informationen, da jeder Kern kann Anweisungen ausführen, die zur gleichen Zeit wie die anderen.
Gibt es keine Kerne, die zur Verfügung stehen, jvm-Prozess. es kann größer als die tatsächliche, wenn hyper-threading zu aktivieren.
In diesem Kontext, ein "Prozessor" ist "hardware in der Lage, unabhängige Ausführung", d.h. eine cpu core.
Es ist nicht die "Prozessor-Paket" - der einzige hardware-Einheit, die Sie kaufen (das ist eigentlich 4 unabhängige CPUs in einem Paket)