¿Existe alguna manera de determinar la cantidad de núcleos de CPU disponibles en JavaScript, para que pueda ajustar el número de trabajadores de la web según eso?Obtener el número de núcleos de CPU en JavaScript?
Respuesta
Sí, navigator.hardwareConcurrency. Admitido de forma nativa en Chrome, Firefox, Edge, Opera y Webkit; compatible en todos los navegadores con a polyfill.
No está definido cuando ejecuto esto en Chrome 35. – jmort253
Está disponible en la versión actual de Chrome Canary según http://src.chromium.org/ viewvc/blink? view = revisión & revisión = 175629 Confirmado funcionó en Chrome Canary 37. –
¿Es parte de un estándar de algún tipo (como compatible o destinado a ser compatible con otros navegadores también)? – jayarjo
No, no lo hay, a menos que use algún ActiveX.
Corto, y al grano. +1;) – falstro
Ok, eso es lo que esperaba. ¡Aún gracias! – tsauerwein
Aunque hay discusiones en la lista de correo WHATWG sobre proporcionar un atributo similar en la versión 2 de la especificación: http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2009-November/024058.html http: //lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-November/023993.html – tsauerwein
No. JavaScript está muy lejos de tales detalles de hardware y no tiene un mecanismo legítimo para consultarlos.
Usted puede tratar de estimar el número de núcleos con: https://github.com/oftn/core-estimator
demo: http://eligrey.com/blog/post/cpu-core-estimation-with-javascript
es un estimador de concurrencia bastante rápido Pirateé juntos ... Aquí no ha sometido a muchas pruebas sin embargo:
Aquí está el código de los trabajadores corren (ya que tengo un vínculo jsFiddle es necesaria una muestra):
// create worker concurrency estimation code as blob
var blobUrl = URL.createObjectURL(new Blob(['(',
function() {
self.addEventListener('message', function(e) {
// run worker for 4 ms
var st = Date.now();
var et = st + 4;
while(Date.now() < et);
self.postMessage({st: st, et: et});
});
}.toString(),
')()'], {type: 'application/javascript'}));
El estimador tiene un gran número de trabajadores funcionando durante un breve período de tiempo (4 ms) e informar de los tiempos que se quedaron (por desgracia, performance.now() no está disponible en la web para obtener más trabajadores tiempo exacto). El hilo principal luego verifica para ver el número máximo de trabajadores que se estaban ejecutando durante el mismo tiempo. Esta prueba se repite varias veces para obtener una muestra decente para generar un estimado.
Así que la idea principal es que, dado un trabajo lo suficientemente pequeño, los trabajadores solo deberían programarse para ejecutarse al mismo tiempo si hay suficientes núcleos para respaldar ese comportamiento. Obviamente es solo una estimación, pero hasta ahora ha sido razonablemente preciso para algunas máquinas que he probado, lo cual es suficiente para mi caso de uso. Se puede aumentar el número de muestras para obtener una aproximación más precisa; Solo uso 10 porque es rápido y no quiero perder el tiempo estimando en lugar de solo hacer el trabajo.
+1 para ese violín – random6174
debería ser respuesta # 2, buena velocidad y precisión – ViliusL
- 1. ¿Cómo obtener información de CPU en C en Linux, como el número de núcleos?
- 2. Encontrar el número de núcleos en Java
- 3. ¿Cómo genero hilos en diferentes núcleos de CPU?
- 4. Javascript/jQuery - Obtener el número de secuencia
- 5. Cómo encontrar el número de núcleos en tiempo de ejecución en Haskell
- 6. Detectar el número de CPU instaladas
- 7. Obtenga el número de CPU en Linux utilizando C
- 8. CPU TSC operación de recuperación, especialmente en el entorno de múltiples núcleos de procesadores múltiples
- 9. ¿Hay alguna manera de detectar de manera confiable la cantidad total de núcleos de CPU?
- 10. ¿Qué es más eficiente? Más núcleos o más CPU
- 11. ¿Existe alguna forma confiable en JavaScript para obtener el número de decimales de un número arbitrario?
- 12. Obtener número de página actual en InDesign CS5 de Javascript
- 13. JVM en múltiples núcleos
- 14. Ejecución de una aplicación Hadoop independiente en múltiples núcleos de CPU
- 15. Cómo averiguar el número de CPU usando pitón
- 16. ¿Cómo obtener el uso de la CPU en C?
- 17. Cómo obtener el uso de CPU en asp.net
- 18. Javascript - número de hijos
- 19. Obtener número de línea en el área de texto
- 20. ¿El iOS-Simulator usa múltiples núcleos?
- 21. ¿Cómo obtener el número IMEI en PhoneGap?
- 22. Obtener uso de porcentaje de CPU
- 23. Javascript- Monitorear dinámicamente el uso de CPU/memoria
- 24. ¿Cómo obtengo el número de campos en el objeto JavaScript?
- 25. número entero en javascript?
- 26. ¿Número de biblioteca de JavaScript?
- 27. Usar actores para explotar núcleos
- 28. ¿Cuántos núcleos de CPU puede utilizar un solo proceso de Java?
- 29. hilo de obtener el 100% de la CPU muy rápido
- 30. Java: ¿Cómo escalar hilos de acuerdo con los núcleos de la CPU?
@meo: "Esta computadora tiene núcleos de CPU eh". El usuario promedio sabe incluso menos sobre los núcleos que JS;) – Piskvor
jajaja buen punto – meo
¿Por qué todos los que escriben una página web asumen que pueden tomar el control de todos los recursos de mi computadora? Me gustaría lograr otras cosas mientras leo el tidbit de información que necesito de su página web. –