Ich schrieb diesen schnellen Skript, um die CPU-Geschwindigkeit zu bekommen:
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");
Beachten Sie, dass diese auf Browser-Tabs abhängen, Speichernutzung, etc., aber ich fand es ziemlich genau, wenn Sie es nur einmal ausgeführt, sagen zu das Laden einer Seite.
Dies ist möglicherweise nicht genau für Desktop-Geräte, insbesondere PCs, aber ich verwende es auf meiner Website nur, wenn andere Lösungen wie die erste fehlschlagen, um die durchschnittliche Geschwindigkeit von mobilen Geräten (ermöglicht mir, Kerne geschätzt) zu verwenden nur clientseitige JS. Es ist vielleicht nicht das Beste, aber es ist ziemlich gut.
Wenn Sie möchten, dass Sie die _speedconstant ändern können, um die Geschwindigkeit zu ändern, berechnen Sie es einfach mit der Gleichung (knowncpuspeed * wissnimetocomplete)/knowncycles. Hoffe, du findest das nützlich!
UPDATE 10/19/17: Geänderte _speedconstant für den neuen Chrom V8 JS Motor und hinzugefügt Abschnitt über das, was ich es verwenden.
In Google Chrome können Sie console.memory verwenden, um herauszufinden, wie viel Speicher im JS-Heap verfügbar ist. –
Ich würde mir ansehen, ob ein Flash-Shim helfen könnte. Ich habe noch keine Cross-Browser-API für Hardware-Informationen gesehen. –
Diese Methoden funktionieren nicht mehr in IE. Browser versuchen, die Verfolgung von Personen zu erschweren. Eine Möglichkeit, Leute zu verfolgen, besteht darin, alle Informationen über ihre Maschine nachzuschlagen. Das und ihre IP-Adresse reichen oft aus, um jemanden oder zumindest eine bestimmte Maschine zu identifizieren. Also, der Browser zeigt keine CPU/GPU/Speicher/# Kerne/etc. (https://panopticlick.eff.org/) – gman