海外テック情報局

Google I/O 2012発JavaScript高速化Tips集

画像

Google I/O 2012でChromeなどで使われているJavaScript エンジン、V8の開発者の1人であるDaniel Cliff ord氏がJavaScriptをより高速にV8で動作させるという講演を行いました。ここで紹介されていたTipsはV8での動作が前提になっているとはいえ、JavaScriptのパフォーマンスを考えるヒントになる点が多く国内外で注目が集まっていました。この資料と講演は英語でしたが、hosikitiさんが和訳したリストが日本の多くの人の注目を集めました。

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

ついつい動けばよいと考えてしまいがちですが、やはり実行エンジンの構造に着目することでパフォーマンスを向上させられることが窺えます。

URLhttp://www.jonefox.com/blog/2012/07/10/13-JavaScript-performance-tips/

著者プロフィール

安藤祐介(あんどうゆうすけ)

数年間米国でのアフィリエイトサービスの開発に参加後、帰国。下北沢オープンソースCafeに出没しつつRedmineをCakePHPに移植するCandyCaneなどのオープンソース活動に従事。

Twitter:yando

小倉純也(おぐらじゅんや)

フリーランスのWebプログラマー生活を経て、QNYP,LLC.を創業しました。秋葉原を拠点にRails、Heroku、グラフDBを駆使したWebサービスを開発中!

Twitter:junya

マクラケン直子(まくらけんなおこ)

東京在住。サンフランシスコにあるブログサービススタートアップのアジア圏担当。最近は韓国語などのl10nプロジェクトサポートをやってます。

Twitter:naokomc

溝畑考史(みぞはたたかし)

米国New York在住、Social mediaな米国startupでFrontend engineerをしています。趣味はマラソンを走ること。最近は画像最適化ツールのsmush.pyをgithubにて開発中。

Twitter:beatak

おすすめ記事

記事・ニュース一覧