WorkerNavigator: свойство hardwareConcurrency
Базовая Широко доступная
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузера. Она доступна в браузерах с марта 2022 года.
Примечание: Эта функция доступна только в Веб-воркерах.
Чтение-только свойство navigator.hardwareConcurrency возвращает количество логических процессоров, доступных для запуска потоков на компьютере пользователя.
Значение
Числовое значение, указывающее количество логических ядер процессора.Number
Современные компьютеры имеют несколько физических ядер процессора (обычно два или четыре), но каждое физическое ядро обычно способно выполнять более одного потока одновременно с помощью усовершенствованных методов планирования. Таким образом, четырехядерный процессор может предлагать, например, восемь логических ядер процессора. Количество логических ядер можно использовать для измерения количества потоков, которые могут быть эффективно запущены одновременно, без необходимости контекстного переключения.
Однако браузер может сообщить о меньшем количестве логических ядер, чтобы более точно отразить количество Workers, которые могут работать одновременно, поэтому не следует рассматривать это как абсолютную меру количества ядер в системе пользователя.
Примеры
В этом примере для каждого логического процессора, о котором сообщает браузер, создается один Worker, и создается запись, содержащая ссылку на новый воркер, а также булево значение, указывающее, используется ли этот воркер; эти объекты, в свою очередь, хранятся в массиве для последующего использования. Это создает пул воркеров, которые мы можем использовать для обработки запросов позже.
Следующий код можно запустить в воркере:
let workerList = [];
for (let i = 0; i < navigator.hardwareConcurrency; i++) {
let newWorker = {
worker: new Worker("cpu-worker.js"),
inUse: false,
};
workerList.push(newWorker);
}
Спецификации
| Спецификация |
|---|
| HTML # dom-navigator-hardwareconcurrency-dev |
Совместимость с браузерами
| Десктопные | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
hardwareConcurrency |
37 | 15 | 48 | 24 |
15.4Значение этого свойства ограничено 4 или 8 ядрами, чтобы предотвратить определение устройства по отпечатку. См. ошибку 233381. |
37 | 48 | 24 |
15.4Значение этого свойства ограничено 4 или 8 ядрами, чтобы предотвратить определение устройства по отпечатку. См. ошибку 233381. |
3.0 | 37 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/WorkerNavigator/hardwareConcurrency