Closed hirosejn closed 6 years ago
test1.とtest2.の比較より
test1.とtest3.の比較およびtest2.とtest4.の比較より
検証ソースコード: 開発者ツールのコンソールより、100M回(1億回)ループ処理を5回実行
test1 = function(){for (var i=0; i < 100000000;i++){}}; // forループテストロジック test2 = function(){var i=0;while (i < 100000000){i++}}; // whileループテストロジック test3 = function(){for (var i=0; i < 100000000;i++){for (var k=0; k<1;k++){}}}; test4 = function(){var i=0;while (i < 100000000){var k=0;while (k<1){k++};i++}}; // テストドライバー(配列の関数を各々5回実行した各実行時間(ms)を計測) tester = function(funcArr){var str="",sum=0;for(var j=0;j<funcArr.length;j++){str+="|";for(var i=0;i<5;i++){var t0 = +new Date();funcArr[j]() ;t1= +new Date();sum+=t1-t0;str +=(+t1-t0)+", ";};str+="ave:"+sum/5;sum=0;} console.log(str);}; tester([test1,test2,test3,test4]); // テスト実行
動作環境: OS/HW共通:Windows 10 Home(64bit), Intel i7-4770 3.4GHz RAM16GB
計測日:2018/1/4
MDNループと反復処理 V8エンジンでのJavaScriptの機能と最適化コードの書き方に関する5つのベストプラクティス
JavaScript速度比較:ループ(for vs while)
結論:100万回程度のループでも、気にするほどの速度差はない
評価
forとwhileの間の速度差
test1.とtest2.の比較より
ループ1回に対するループ呼出しの重さ
test1.とtest3.の比較およびtest2.とtest4.の比較より
ブラウザ間の差
JIT効果
検証結果
検証ソースコード: 開発者ツールのコンソールより、100M回(1億回)ループ処理を5回実行
動作環境: OS/HW共通:Windows 10 Home(64bit), Intel i7-4770 3.4GHz RAM16GB
計測日:2018/1/4
参考
MDNループと反復処理 V8エンジンでのJavaScriptの機能と最適化コードの書き方に関する5つのベストプラクティス