![]() |
Firefox web browser - Faster, more secure & customizable |
Mozilla JavaScriptチームのDavid Mandelin氏がJavaScript speedups in Firefox 3.6にて、Firefox 3.6で取り組んだJavaScriptの高速化技術についてまとめている。どういった方策で高速化が実施されたのかがまとまっていて参考になる。紹介されている内容は次のとおり。
Firefox 3.5ではTraceMonkeyと呼ばれる新しいJavaScriptエンジンが導入された。これは特にループ処理のようにJITで高速化が見込みやすい部分をトレースしてネイティブコードに変換するというもの。Firefox 3.0と比較して平均で3倍から4倍の高速化が実現されたという。
しかしFirefox 3.5のJITには課題も多い。まず、トレースする対象が限られているため、JITが実行されずに高速化されない部分が多い。また、Firefox UIで使われているJavaScriptはトレースの対象になっていないし、アドオンのJavaScriptも対象になっていない。より多くのJavaScriptをトレースしてJITでネイティブコード化すればより高速化できる。またJavaScriptベースのアニメーションの動作にムラがあるため、改善する必要がある。
FirefoxのJavaScriptは大きく分けて2つの場所に分類される。contentとchromeだ。contentはウェブコンテンツに含められているJavaScript、chromeはUIやアドオンに含められているJavaScriptだ。chromeにおけるバグはセキュリティや信頼性に直接影響するため、Firefox 3.5ではcontentに対してのみJITが有効になっている。
Firefox 3.6では試験を経て、contentに対してJITを有効にしても大丈夫だと判断。3.6ではUIに対してもJITが有効になる。FirefoxのUIは従来のJavaScriptエンジンでも効果がでるように製作されているため効果を感じることは少ないかもしれないが、JavaScriptを多用しているアドオンでは効果が見られやすいという。
JavaScriptではガベージコレクタが定期的に実行され利用されていないメモリを開放している。GC実行中はすべてのJavaScriptが停止されるため、JavaScriptでアニメーションを実施している場合には一瞬画面が止まるような描画が実施されてしまう。Firefox 3.6では次のふたつの方法でGCポーズ時間の短縮を実現している。
JITでネイティブコードに変換できるかどうかが、JavaScript実行速度高速化の要といえる。Firefox 3.6では新たにDOMプロパティや、より多くのクロージャ、arguments、switchもトレースの対象とした。この結果JavaScriptの処理が従来の実装よりも高速化され、特にjQueryやDromaeoで効果が見られる。
従来の文字列処理から、大きなバッファを用意してそこに文字列をコピーしてまとめるといった処理へ変更。随時文字列の結合を実施する従来の実装よりも文字列結合の実行速度が改善している。またより多くの正規表現クラスをJITコンパイラで処理できるように改善した。
Firefox 3.6はFirefox 3.5よりも高速化されている。実際に使ってみるだけでも軽快さを体感できるほど。ただしそれでもChromeやSafariの方が高速化の面では先行している。また、開発中のOperaがChromeを超える高速化を実現したという報告もあり、主要ブラウザの中では抜きん出て高速というわけではない。
| すべてZIPにまとめて高速化、Firefox 3.7で対応 [2009/11/19] |
| Firefox高速化報告、11月14日 [2009/11/17] |
| Firefox高速化報告、11月7日 [2009/11/9] |
| Firefox on Macは起動高速化、XP、Vista、Linuxは変わらず [2009/10/28] |
| Firefox on Mac、コールドスタートで20%高速化 [2009/10/5] |
| Firefox起動高速化3.6で10%、3.7で20% - Win7は3.5が爆速 [2009/9/8] |
| トマトを食べれば痩せられる!? -京大ら、新発見の成分で肥満改善効果を実証 [21:00 2/10] |
| JAXA、液体シリコン中に残存する共有結合を観察 -大口径ウェハの実現に期待 [20:11 2/10] |
| NEDOなど、熱膨張が小さな樹脂複合材料ペレットの量産化に成功 [19:22 2/10] |
| 理研、一般顕微鏡を蛍光顕微鏡に強化できるアダプタを試作して性能を実証 [19:15 2/10] |
| 天の川のブラックホールが小惑星を飲み込んでいる - NASAが発表 [18:08 2/10] |
|
[北島三郎]「目立たなきゃだめ」と話題の“オオカミバンド”を激励 [12:30 2/11] ホビー |
|
目的は一体!? 肥前夢街道に現るバッジ売りの少猫(佐賀県) [12:08 2/11] キャリア |
|
つらい花粉症は対策グッズで乗り切ろう! [12:07 2/11] キャリア |
|
【アジア発!Breaking News】マンションの排水口で銃の試し打ち。階下水漏れで、銃器所持の男らを逮捕。(台湾) [12:07 2/11] キャリア |
|
【エンタがビタミン♪】『逆転裁判』の斎藤工、“ラー油入り手作りチョコ”で女性不信に。 [12:07 2/11] キャリア |