|
Thomas Fuchs, author of the script.aculo.us user interface JavaScript library, a member of the Prototype core team and a Ruby on Rails core alumnus. |
Thomas Fuchs氏が6 easy things you can do to improve your JavaScript runtime performanceにおいてJavaScriptの実行パフォーマンスを改善するための6つのテクニックを紹介している。Thomas Fuchs氏はscript.aculo.usの開発者であるとともにPrototypeコアチームのメンバーも務めている。またRuby on Railsでコアチームで開発を担当していたこともある。
| JavaScriptエンジン |
|---|
| SpiderMonkey (Firefox) |
| JavaScriptCore (Safari) |
| JScript (IE8) |
| V8 (Chrome) |
紹介された6つのテクニックは次のとおり。
関数呼び出しを使わずにインラインに展開する。なおIE8では実行してから1秒後にIEの動作を遅くする原因になっている可能性があるという警告ダイアログを表示してくるため、関数呼び出しについてはベンチマーク結果が掲載されていない。
|
|
関数呼び出しではなくインラインに展開する - 6 easy things you can do to improve your JavaScript runtime performanceより抜粋 |
ブラウザごと実行時間比較 |
従来の{}といった生成方法ではなくnewを使って配列やオブジェクトを作成する。
|
|
配列とオブジェクト生成の指定方法の違い - 6 easy things you can do to improve your JavaScript runtime performanceより抜粋 |
ブラウザごと実行時間比較 |
forとwhileの間には性能差は見られない。ループは展開することで実行速度の改善が期待できる。
|
|
ループを使うケースと展開するケース - 6 easy things you can do to improve your JavaScript runtime performanceより抜粋 |
ブラウザごと実行時間比較 |
グローバル変数のままアクセスせずに、一旦ローカルにキャッシュしてから利用する。
|
|
ローカル変数とグローバル変数 - 6 easy things you can do to improve your JavaScript runtime performanceより抜粋 |
ブラウザごと実行時間比較 |
評価式を工夫し、たとえば「&&」を使う場合など、先にfalseが入る可能性が高いものを先に記述するなどして実際のステップ数の削減に努める。
|
|
評価式を工夫して処理ステップを減らす - 6 easy things you can do to improve your JavaScript runtime performanceより抜粋 |
ブラウザごと実行時間比較 |
with () {}でスコープを指定する方法と直接記述する方法では、直接記述する場合の方が実行速度が速い。また例外処理を補足する記述はそうでない場合と比べて実行速度が遅い。
|
|
withスコープの利用の有無 - 6 easy things you can do to improve your JavaScript runtime performanceより抜粋 |
ブラウザごと実行時間比較 |
|
|
例外処理の利用の有無 - 6 easy things you can do to improve your JavaScript runtime performanceより抜粋 |
ブラウザごと実行時間比 |
6 easy things you can do to improve your JavaScript runtime performanceではこれ以外にもあまり効果が見られないテクニックについても記載があるほか、JITエンジンを搭載したブラウザでは特定の機能がうまくサポートされていないことなども紹介されている。
Thomas Fuchs氏はJavaScriptのパフォーマンスについてまとめた電子書籍JavaScript Rocks! JavaScript Performance, Benchmarking and Tuning Ebookの執筆者であり、最適化の資料として同書籍を薦めている。また高速化に関しては以前JavaScriptを高速化する31のチェックリストを公開している。
| JavaScriptを高速化する31のチェックリスト [2009/10/29] |
| イプスイッチ、Windows環境の監視ツール「WhatsUp Gold」で日本語に対応 [15:33 5/28] |
| アイシンの最新安全運転システム - 車両周辺・後方障害物監視、わき見・居眠り判断 [10:30 5/28] |
| ラネクシー、画像処理ソフトウェア開発キットの最新版を64bit版で販売 [10:10 5/28] |
| 東陽テクニカ、1G/10GbE回線対応のポータブルネットワークアナライザ [09:57 5/28] |
| 日本発の取り組み「Mozilla Factory」がスタート [09:30 5/28] |
|
【連載】対処法付き! 「海外旅行トラブル」あるある 第1回 遠慮なく倒れてくるシートにストレスMAX [16:17 5/28] ライフ |
|
ゲッティ、簡略版URLなどを記載した新ウォーターマークを本格的に導入 [16:01 5/28] クリエイティブ |
|
【連載】今さら人に聞けない!! Photoshopのショートカットキー講座 第27回 クリッピングマスクを作成 [15:51 5/28] クリエイティブ |
|
如月芳規が新連載、ゼロサム作品袋とじデートピンナップも [15:50 5/28] ホビー |
|
10,000円以上の利用で、ANA・JALの500マイルをプレゼント-コナカ [15:35 5/28] ライフ |
4つの診断で、自分の適性を見つめなおそう!
働くこと・挑戦し続けることへの思いを綴ったインタビュー
あなたにピッタリのアドバイスを読むことができます。
転職に必要な情報が収集できます
企業からアプローチのメッセージが届きます。