Ho scritto questo script veloce per ottenere la velocità della CPU:
var _speedconstant = 8.9997e-9; //if speed=(c*a)/t, then constant=(s*t)/a and time=(a*c)/s
var d = new Date();
var amount = 150000000;
var estprocessor = 1.7; //average processor speed, in GHZ
console.log("JSBenchmark by Aaron Becker, running loop "+amount+" times. Estimated time (for "+estprocessor+"ghz processor) is "+(Math.round(((_speedconstant*amount)/estprocessor)*100)/100)+"s");
for (var i = amount; i>0; i--) {}
var newd = new Date();
var accnewd = Number(String(newd.getSeconds())+"."+String(newd.getMilliseconds()));
var accd = Number(String(d.getSeconds())+"."+String(d.getMilliseconds()));
var di = accnewd-accd;
//console.log(accnewd,accd,di);
if (d.getMinutes() != newd.getMinutes()) {
di = (60*(newd.getMinutes()-d.getMinutes()))+di}
spd = ((_speedconstant*amount)/di);
console.log("Time: "+Math.round(di*1000)/1000+"s, estimated speed: "+Math.round(spd*1000)/1000+"GHZ");
Si noti che questo dipende schede del browser, l'utilizzo della memoria, ecc ma ho trovato abbastanza preciso se solo si esegue una volta, dire in il caricamento di una pagina.
Questo potrebbe non essere accurato per i dispositivi desktop, in particolare i PC, ma lo uso nel mio sito solo quando altre soluzioni come la prima falliscono, per ottenere la velocità media dei dispositivi mobili (mi permette di stimare i core utilizzati) usando solo JS lato client. Potrebbe non essere il migliore, ma funziona piuttosto bene.
Se si desidera modificare il valore di _stecostanza per modificare la velocità, è sufficiente calcolarla con l'equazione (knowncpuspeed * knowntimetocomplete)/knowncycles. Spero che tu trovi questo utile!
UPDATE 10/19/17: Cambiato _speedconstant per il nuovo motore V8 Chrome JS e sezione aggiunta a quello che lo uso per.
fonte
2017-02-09 17:50:17
In google chrome è possibile utilizzare console.memory per scoprire la quantità di memoria disponibile nell'heap JS. –
Vorrei sapere se uno shim Flash potrebbe essere d'aiuto. Non ho mai visto alcuna API cross-browser per informazioni sull'hardware. –
Questi metodi non funzionano più in IE. I browser stanno cercando di rendere più difficile rintracciare le persone. Un modo per tenere traccia delle persone è cercare tutte le informazioni sulla loro macchina. Quello più il loro indirizzo ip è spesso sufficiente per identificare qualcuno o almeno una macchina specifica. Quindi, il browser non mostra CPU/GPU/memoria/# core/ecc. (https://panopticlick.eff.org/) – gman