C'è un modo per determinare il numero di core CPU disponibili in JavaScript, in modo da poter regolare il numero di web worker a seconda di quello?Ottieni il numero di core CPU in JavaScript?
risposta
Sì, navigator.hardwareConcurrency. Supportato in modo nativo in Chrome, Firefox, Edge, Opera e Webkit; supportato in tutti i browser con a polyfill.
Non è definito quando eseguo questo in Chrome 35. – jmort253
È disponibile nell'attuale build di Chrome Canary in base a http://src.chromium.org/ viewvc/blink? view = revision & revision = 175629 Confermato funzionante in Chrome Canary 37. –
Fa parte di uno standard di qualche tipo (come supportato o pensato per essere supportato anche in altri browser)? – jayarjo
No, non lo è, a meno che non si utilizzi un po 'di ActiveX.
Breve, e al punto. +1;) – falstro
Ok, questo è quello che mi aspettavo. Grazie ancora! – tsauerwein
Sebbene ci siano discussioni nella mailing list WHATWG sulla fornitura di un attributo simile nella versione 2 delle specifiche: 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 è molto lontano da tali dettagli hardware e non ha alcun meccanismo legittimo per interrogarli.
Si può cercare di stimare il numero di core con: https://github.com/oftn/core-estimator
demo: http://eligrey.com/blog/post/cpu-core-estimation-with-javascript
Ecco uno stimatore concorrenza abbastanza veloce ho messo insieme ... non ha ancora subito molte prove:
Ecco il codice di eseguire i lavoratori (dal momento che ho un link jsfiddle un campione è necessario):
// 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'}));
Lo stimatore ha un gran numero di lavoratori funzionare per un breve periodo di tempo (4ms) e di riferire i tempi che correvano loro (purtroppo, performance.now() non è disponibile nei lavoratori web per ulteriori tempismo preciso). Il thread principale quindi controlla per vedere il numero massimo di lavoratori che erano in esecuzione nello stesso tempo. Questo test viene ripetuto un numero di volte per ottenere un campione decente con cui produrre una stima.
Quindi l'idea principale è che, data una piccola quantità di lavoro, i lavoratori dovrebbero essere programmati per essere eseguiti nello stesso momento se ci sono abbastanza core per supportare tale comportamento. Ovviamente è solo una stima, ma finora è stato ragionevolmente accurato per alcune macchine che ho testato, il che è abbastanza buono per il mio caso d'uso. Il numero di campioni può essere aumentato per ottenere un'approssimazione più accurata; Io uso solo 10 perché è veloce e non voglio perdere tempo a stimare rispetto al solo lavoro svolto.
+1 per quel violino – random6174
dovrebbe essere la risposta n. 2, buona velocità e precisione – ViliusL
- 1. Numero di CPU/core in Perl
- 2. Ottieni il numero di CPU in Linux utilizzando C
- 3. AWS EC2: il numero di core CPU disponibili su un'istanza
- 4. Ottieni informazioni CPU/GPU/memoria
- 5. Trova numero di CPU e core per CPU utilizzando il prompt dei comandi
- 6. Ottieni il valore assoluto di un numero in Javascript
- 7. C'è un modo per rilevare in modo affidabile il numero totale di core della CPU?
- 8. Come ottenere informazioni sulla CPU in C su Linux, come il numero di core?
- 9. Ottieni il numero di build di IE 11 da javascript
- 10. Marca GNU: il numero di lavori deve essere uguale al numero di core CPU in un sistema?
- 11. TensorFlow (Mac OS X): impossibile determinare il numero di core CPU:
- 12. Ottieni il conteggio del ciclo della CPU?
- 13. Ottieni il numero di richieste in IIS dal codice C#
- 14. Ottieni il numero di app in TaskBar
- 15. GPU vs CPU? Numero di core/thread in una GPU per l'accelerazione del calcolo del programma?
- 16. Numero di CPU per attività in Scintilla
- 17. Come trovare il numero di CPU in Go lang?
- 18. Come trovare il numero di core in fase di esecuzione in Haskell
- 19. Quanti core CPU ha un dungeo di heroku?
- 20. x86 domanda BLOCCO su CPU multi-core
- 21. CPU core non utilizzati correttamente utilizzando qthreads
- 22. javascript se il numero maggiore di numero
- 23. Restrizione del numero di core utilizzati
- 24. Ottieni il numero di secondi dal
- 25. Ottieni il numero totale di elementi nell'array
- 26. Node.js - Ottieni il numero di processori disponibili
- 27. Quanti core cpu possono utilizzare un singolo processo Java?
- 28. Thread OpenMP in esecuzione sullo stesso core CPU
- 29. Come interpretare il tempo di CPU vs CPU percentuale
- 30. Ottieni il numero nth-child di un elemento in puro JavaScript
@meo: "Questo computer ha huh? CPU core." L'utente medio conosce ancora meno i core rispetto a JS;) – Piskvor
hahaha good point – meo
Perché tutti quelli che scrivono una pagina Web presumono che possano assumere il pieno controllo delle risorse del mio computer? Mi piacerebbe realizzare altre cose mentre leggo il bocconcino di informazioni di cui ho bisogno dalla tua pagina web. –