私は、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");
注意これはブラウザなどのタブ、メモリの使用、に依存するが、あなたは一度だけ、それを実行する場合、私はそれはかなり正確に見つけ、で言っていることページの読み込み。
これは、デスクトップデバイス、特にPCでは正確ではないかもしれませんが、私は最初の1つのような他の解決策が失敗した場合にのみ使用します(モバイルデバイスの平均速度を取得するクライアントサイドのJSだけです。それは最高ではないかもしれませんが、それはかなりうまくいきます。
速度を変更するように_speedconstantを変更したい場合は、(knowncpuspeed * knowntimetocomplete)/ knowncyclesの式で計算してください。これが便利だと思っていますか?
UPDATE 10/19/17:新しいクロームV8 JSエンジンの変更_speedconstantと私はそれを使用するかについてのセクションを追加しました。
google chromeでは、console.memoryを使用してJSヒープで使用可能なメモリ量を調べることができます。 –
Flash shimが役立つかもしれないかどうかを見てみましょう。以前はハードウェア情報用のクロスブラウザAPIは見ていませんでした。 –
これらのメソッドはIEでは動作しません。ブラウザは人々を追跡することをより困難にしようとしています。人を追跡する1つの方法は、自分のマシンに関するすべての情報を調べることです。そのIPアドレスは、しばしば誰かを特定するか、特定のマシンを特定するのに十分です。したがって、ブラウザはCPU/GPU /メモリ/#コア/などを表示しません。 (https://panopticlick.eff.org/) – gman