[解決済み】ループは本当に逆回転で速くなるのか?
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
.
ほとんどの場合、あなたは このような最適化について心配する必要はありません。 .
関連
-
[解決済み】JavaScriptのisset()に相当するもの
-
[解決済み】 Uncaught Reference Error: stLight is not defined (in Chrome only)
-
[解決済み] for'ループでインデックスにアクセスする?
-
[解決済み] ループ内のJavaScriptクロージャ - シンプルな実用例
-
[解決済み] 要素ごとの加算は、結合ループよりも分離ループの方がはるかに高速なのはなぜですか?
-
[解決済み] Javaでネストされたループから抜け出すには?
-
[解決済み] <は<=より速いのか?
-
[解決済み] Pythonでリストを逆順にトラバースする
-
[解決済み] なぜPythonのコードは関数の中でより速く実行されるのですか?
-
[解決済み] なぜ[]はlist()よりも速いのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】TypeError: $(...).DataTable は関数ではありません。
-
[解決済み】JavaScriptで':'(コロン)は何をするのか?
-
[解決済み】Uncaught ReferenceError: angular is not defined - AngularJSが動作しない。
-
[解決済み】NodeJS "ESモジュールをロードするためにインポートを使用する必要があります。"
-
[解決済み】最大呼び出しスタックサイズ超過エラーとその修正方法とは?
-
[解決済み】ES6マップオブジェクトをソートすることは可能ですか?
-
[解決済み】HTMLの最初の行に予期しないトークン<がある。
-
[解決済み】 \u003C とは何ですか?
-
[解決済み】未定義のプロパティ 'forEach' を読み取ることができない
-
[解決済み】JavaScriptで配列をループする最速の方法は何ですか?