私はユーティリティ専用のライブラリに取り組んでいます。文字列、配列、数値、オブジェクトなどの操作に役立つ関数があります。パフォーマンスが主な焦点です。文字列の繰り返し機能 (文字列を何回も繰り返す) に取り組んでいるときにn
、現在の方法の速度をテストすることにしました。
Array(n + 1).join(string); // n = times to repeat; string = string to copy
ループを使用する場合と比較されます。これは文字列を繰り返す最短の方法ですが、最も遅い方法でもあります。まだまだ早いのはわかります。つまり、人間が 1 秒間に 200,000 のことを行うことは不可能ですが、ループと比較すると遅いです。
ループが高速な理由は何ですか? 特に高速であることに気付いた 1 つのループは、以下を含む while ループですi--
。
var i = 10;
while (i--) {
// do stuff
}
この方法が最速なので、この方法を使用することにしました。しかし、私はなぜ知りたかったのですか?他の方法よりもはるかに高速な理由は何ですか?
これが私のベンチマークです。while ループが for ループより遅い唯一のブラウザーは Opera でした。Internet Explorer 10 では特に高速でした。