Web+DB Press Vol.58の「JavaScriptの玉手箱」でJavaScriptの高速化に関する記事があった。
※「JavaScript高速化 undefined型判定編」ってのも書きました
■関数
・関数呼び出しのコスト
JavaScriptは関数呼び出しのコストが高い
関数を小分けにし過ぎると呼び出す回数が増えて遅くなるので、ある程度はインラインで書いて、関数呼び出しの回数を減らした方が速くなる
・関数の呼び出し
同じスコープ内にある関数かグローバルな関数は速い
でもグローバルな関数をwindow["hahihuheho"]という書き方で呼ぶとえらく遅くなるらしい。
呼び出し早い順ランキング
1.グローバル関数をwindowを省略して呼ぶ
2.上位スコープの関数を呼び出す
3.ローカル関数を呼び出す
4.グローバル関数をwindow["****"]で呼ぶ
自分的に意外だったのはローカル関数呼ぶより上位の関数呼んだほうが速いってこと。
各ブラウザでのテスト結果も出てたんだけどChrome以外は大きな差があった。
※ローカル関数呼び出し
function func1(){
fucntion localFunc(){
return true;
}
localFunc();
}
↑よりも↓の方が速い
※上位スコープの関数呼び出し
function func1(){
scopeFunc();
}
※↓上位スコープにある関数
function scopeFunc(){
return true;
}
兄弟に相談するよりも、親に聞いた方がいいってイメージで覚えとこう
他にも型判別の高速化に関しても書いてあったので、また今度。
0 件のコメント:
コメントを投稿