1. ホーム
  2. ジャバスクリプト

[解決済み】ループは本当に逆回転で速くなるのか?

2022-03-30 01:07:09

質問

何度か聞いたことがあります。JavaScriptのループは、本当に逆算した方が速いのでしょうか?もしそうなら、なぜですか?逆回転ループの方が速いというテストスイートの例をいくつか見ましたが、その理由についての説明は見当たりません

ループが終了したかどうかを確認するたびにプロパティを評価する必要がなくなり、最終的な数値に対してチェックするだけになったからだと推測しています。

すなわち

for (var i = count - 1; i >= 0; i--)
{
  // count is only evaluated once and then the comparison is always on 0.
}

解決方法は?

というわけではありません。 i-- よりも高速です。 i++ . 実は、どちらも同じくらい速いんです。

昇順ループで時間がかかるのは、それぞれの i 配列の大きさです。このループでは

for(var i = array.length; i--;)

を評価します。 .length を宣言したときに一度だけ i 一方、このループでは

for(var i = 1; i <= array.length; i++)

を評価します。 .length をインクリメントするたびに i をチェックするときに i <= array.length .

ほとんどの場合、あなたは このような最適化について心配する必要はありません。 .