いくつかのXMLで読んでいるJavascriptがあります。そのデータからJSONオブジェクトを作成するために使用された古い関数があり、JSONオブジェクトをより速く作成することを望む新しい関数を書いています。 どの機能が高速に実行されているかを判断する最も簡単で効果的な方法は何ですか?それはまともな量のデータなので、知ることはいくらか重要です。おかげさまで 2つのJavascript関数の速度を比較するにはどうすればよいですか?
答えて
そのようなChromeデベロッパーツールやFirebugの中で:また
console.time("oldFunc");
//oldfunc();
console.timeEnd("oldFunc");
console.time("newfunc");
//newfunc();
console.timeEnd("newfunc");
、あなたが使用することができjsperf
(new Date).getTime();
これは、現在の時間をミリ秒単位で取得する方法です。コードの実行前後でそれを行い、減算し、実行時間をミリ秒単位で指定します。
サンプル:あなたのコードの組織が許可されている場合
var start=(new Date).getTime();
//call your code
alert('Code took '+((new Date).getTime()-start)+'ms');
、あなたは時間と最後にnで時間を分割(の1000を言わせて)のnを繰り返し、ループのためにあなたの電話をかけることができます。
このように平均速度を得ることができます。これは、機能が大きく異なる(ネットワークコールなど)場合に特に役立ちます。
...のような人々は、各バージョンごとに1000回実行し、最小値を結果として取得します。 – Bergi
ありがとう、ベルギ!それはOPの場合に行うことが可能な場合、それは良いアドバイスです。編集された答え。 –
これはブラウザまたはサーバー側のですか?
サーバ側の場合は、ベンチマークを行うためにシェルスクリプトツールを使用することをお勧めします(linuxにはtime
があります)。
それはブラウザでなら、あなたは常にで(10,000通常は十分である)の反復の一定数をラップすることができます:あなたはconsole.time("ID");
とconsole.timeEnd("ID");
(情報here)を使用し、その結果を見ることができる
var start = new Date.getTime();
var runs = 10000;
while (runs) {
// do stuff here
runs--;
}
console.log('Finished in ' + (new Date.getTime() - start) + ' ms.');
var d1 = new Date();
function1();
var d2 = new Date();
console.log("Function 1 : ", d2.getTime() - d1.getTime());
function2();
var d3 = new Date();
console.log("Function 2 : ", d3.getTime() - d2.getTime());
私は、関数のパフォーマンスをテストするJohn Resigs wayが好き:
function runTest(name, test, next){
var runs = [], r = 0;
setTimeout(function(){
var start = Date.now(), diff = 0;
for (var n = 0; diff < 1000; n++) {
test();
diff = Date.now() - start;
}
runs.push(n);
if (r++ < 4)
setTimeout(arguments.callee, 0);
else {
done(name, runs);
if (next)
setTimeout(next, 0);
}
}, 0);
}
ここで、このコード・サンプル
http://www.einternals.com/blog/web-development/javascript-find-script-execution-time-2
var startDate = new Date();
// execute your tasks here
var endDate = new Date();
var timeTaken = endDate.getTime() - startDate.getTime();
alert('Time take to execute the script is '+timeTaken+' milliseconds');
- 1. knexjsでは、.where()関数の2つの列を比較するにはどうすればよいですか?
- 2. この2つの関数の値を比較するにはどうすればよいですか?
- 3. 複数のドットで2つの「数字」を比較するにはどうすればよいですか?
- 4. JavaScript 2つの配列間の値を比較するにはどうすればよいですか?
- 5. JavaScriptで2つのブロブを比較するにはどうすればよいですか?
- 6. 「MM/DD/YYYY」日付とJavascriptのDate()関数を比較するにはどうすればよいですか?
- 7. このように2つの文字列を比較するにはどうすればよいですか?
- 8. 2つのループスタイルの速度比較
- 9. 2つのinnerHTML要素の数値を比較するにはどうすればよいですか?
- 10. デルファイの2つの数値を比較するにはどうすればよいですか?
- 11. 2つのプロパティを数値で比較するにはどうすればよいですか?
- 12. jinja2 if文で2つの整数を比較するにはどうすればよいですか?
- 13. 2つの文字列変数を比較するにはどうすればよいですか?
- 14. 異なる値を持つ2つのnsarrayを比較するにはどうすればよいですか?
- 15. 2つのリストと範囲の間の値を比較するPythonスクリプトの速度を向上させるにはどうすればよいですか?
- 16. VIsual Basicでは、2つのオブジェクトの種類を比較するにはどうすればよいですか?
- 17. Javaで速度の異なる2つの日付を比較するにはどうすればよいですか?
- 18. gitの2つのリビジョンでファイルをプログラムで比較するにはどうすればよいですか?
- 19. 2つのフォームファイルの違いを比較するにはどうすればよいですか?
- 20. SilverlightでSystem.Text.Encodingの2つのインスタンスを比較するにはどうすればよいですか?
- 21. Javaで継承の2つの値を比較するにはどうすればよいですか?
- 22. Eclipseでgitの2つのリビジョンを比較するにはどうすればよいですか?
- 23. Coqで同じSetの2つの要素を比較するにはどうすればよいですか?
- 24. Rの2つのデータセットを要素ごとに比較するにはどうすればよいですか?
- 25. vimのvimdiffに似た2つのファイルを比較するにはどうすればよいですか?
- 26. 2つのネストされた配列を比較するにはどうすればよいですか?
- 27. シャッフルされた2つの文字列を比較するにはどうすればよいですか?
- 28. アセンブリ内の2つの配列の要素を比較するにはどうすればよいですか?
- 29. Javaでプログラムで2つのodsドキュメントを比較するにはどうすればよいですか?
- 30. 入力から2つの日付を比較するにはどうすればよいですか?
上のいくつかの情報私は最善の方法を知っていると主張しませんhttp://jsperf.com –