JavaScriptのパフォーマンスを上げる13のテクニック(Google I/O 2012)

JavaScriptのパフォーマンスを上げる13のテクニック

一部意訳あり。(特に関数についての11と13)。深く理解したい方はスライドや動画を観ることをオススメ。
(元記事)
http://www.jonefox.com/blog/2012/07/10/13-javascript-performance-tips/

    • -

先日、Googleのダニエル・クリフォードは"Google I/O 2012"にて「V8で打ち破るJavaScriptのスピードリミット」と題した素晴らしい講演を行った。その中で彼は、JavaScriptコードで実践できる13のシンプルな最適化手法を紹介している。それらはChromeのV8 JavaScriptエンジンのコンパイルや実行速度を上げ、コードを速くするものだ。彼はそれらについての多くの説明を行なっているが、もしただシンプルTips一覧が欲しいというなら、以下をどうぞ。

  1. コンストラクタ関数内ですべてのオブジェクトメンバを初期化する
  2. 常に同じ順番でオブジェクトメンバを初期化する
  3. Numeric型(31bitで表現される符号付き整数)を出来るだけ使う
  4. 0から始まる連続した値を配列のキーとして使う
  5. 巨大な配列(64000個以上の要素を持つもの)は予め確保せず、必要になったら随時追加する
  6. 配列要素を削除しない(特に数値配列の場合)
  7. 初期化されていない、あるいは削除済の要素を読み込まない
  8. 小さな固定サイズの配列の初期化には配列リテラル[]を用いる
  9. 小さな配列は予めそのサイズ分領域を確保しておく
  10. 数値配列に数値以外の値(オブジェクト)を格納しない
  11. 関数の中の動きが単一になるようにする(ポリモーフィズムは避ける)
  12. try {} catch {} ブロックは使用しない
  13. 関数作成後に構造を変えない(Chromeが実行時に作成するクラスが変わってしまう)
    • -

動画