Home > 技術 > Arrayのlengthはいったん変数に格納してからループしたほうが速い

Arrayのlengthはいったん変数に格納してからループしたほうが速い

既出な内容ではあるが、一応メモとして残しとく。

配列を走査するときに、配列のlengthを一旦変数に格納したほうが速いんじゃないかという話。
実際試してみた。

コードは以下の感じでどのブラウザでも実行できるようにしました。

配列のlengthを退避せずに実行した場合

Firefox3.0
12ms
IE6.0
63ms
IE7.0
63ms
Safari3.1
31ms
Opera9.5
32ms

配列のlengthを退避して実行した場合

Firefox3.0
7ms
IE6.0
16ms
IE7.0
31ms
Safari3.1
16ms
Opera9.5
16ms


おお~、全然違うみたい。
とはいっても9万回以上ループした場合の結果なので、実際の開発でこれぐらいの差がでるかどうかは微妙ですが、塵も積もれば何たらってやつで意識しておけば処理の重いJavaScriptでもちょっとしたメリットはあるかもしれません。

■関連リンク
JavaScriptの配列をも~っと深く理解する:lengthの不思議な動作 - builder by ZDNet Japan
配列を for で回すときは length を何度も参照すると遅い - gan2 の Ruby 勉強日記

Trackback:0

TrackBack URL for this entry
http://hisasann.com/cgi-bin/mt/mt-tb.cgi/1112
Listed below are links to weblogs that reference
Arrayのlengthはいったん変数に格納してからループしたほうが速い from HouseTect, JavaScriptな情報をあなたに

Home > 技術 > Arrayのlengthはいったん変数に格納してからループしたほうが速い

Tag cloud
月別アーカイブ
Powered by
Powered by
Movable Type Commercial 4.261

Page Top