Navigator: hardwareConcurrency-Eigenschaft

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022.

Die navigator.hardwareConcurrency-Eigenschaft ist nur lesbar und gibt die Anzahl der logischen Prozessoren zurück, die zur Ausführung von Threads auf dem Computer des Benutzers verfügbar sind.

Wert

Eine Zahl zwischen 1 und der Anzahl der logischen Prozessoren, die dem Benutzeragenten potenziell zur Verfügung stehen.

Moderne Computer haben mehrere physische Prozessorkerne in ihrer CPU (typischerweise zwei oder vier Kerne), aber jeder physische Kern ist normalerweise auch in der Lage, mehr als einen Thread gleichzeitig auszuführen, indem fortschrittliche Planungstechniken verwendet werden. Ein Vier-Kern-CPU kann beispielsweise acht logische Prozessorkerne bieten. Die Anzahl der logischen Prozessorkerne kann verwendet werden, um die Anzahl der Threads zu messen, die effektiv gleichzeitig ausgeführt werden können, ohne dass zwischen den Kontexten gewechselt werden muss.

Der Browser kann jedoch entscheiden, eine niedrigere Anzahl logischer Kerne zu melden, um genauer die Anzahl der Worker darzustellen, die gleichzeitig ausgeführt werden können. Betrachten Sie dies daher nicht als absolute Messung der Anzahl der Kerne im System des Benutzers.

Beispiele

In diesem Beispiel wird für jeden vom Browser gemeldeten logischen Prozessor ein Worker erstellt, und es wird ein Datensatz erstellt, der eine Referenz auf den neuen Worker sowie einen booleschen Wert enthält, der angibt, ob wir diesen Worker bereits verwenden oder nicht. Diese Objekte werden wiederum in einem Array für die spätere Verwendung gespeichert. Dadurch wird ein Pool von Workern erstellt, den wir später zur Bearbeitung von Anforderungen nutzen können.

js
let workerList = [];

for (let i = 0; i < window.navigator.hardwareConcurrency; i++) {
  let newWorker = {
    worker: new Worker("cpu-worker.js"),
    inUse: false,
  };
  workerList.push(newWorker);
}

Spezifikationen

Specification
HTML
# dom-navigator-hardwareconcurrency-dev

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
hardwareConcurrency

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
See implementation notes.
Has more compatibility info.

Siehe auch