最新のShiretoko(3.1b3pre, ID:20090227033431)では、jit.chromeが元どおり使えるようになった。『jit.chromeとロケーションバー』で書いたように、しばらく前から、javascript.options.jit.chromeをtrueに設定していると、ロケーションバーに文字を打ち込んだだけでクラッシュするバグ(Bug 472450 - TM: Crash [@ JS_GetGlobalForObject] or [@ js_PutBlockObject] or [@ js_Interpret])が発生していたのだが、ようやく解決された。
このバグ、Trunkでは10日前に修正されていたのに、1.9.1 Branchではなかなか修正されなかった。ところが、ここ二日ほど、大量のパッチがBranchに入っており、本バグのパッチもその流れに乗って到着した。その背景には、来週中にBeta 3向けの開発作業を終えることがあるのだろう。Trunkで修正済みのまま放置されていたパッチを、今から片付けていこうというわけだ。確認してみると、Branchに投入すべきパッチをもつバグの数は、現時点で60個にまで減っている。一時期は90個を超えていたので、作業が急ピッチで進められているのがわかる。
二日間で修正されたバグのリストには、DOMやVideo/Audioのカテゴリーからもけっこうエントリーがあるが、やはりTraceMonkeyを含めたJavaScriptエンジン関係が目立つ。そこで、例によってSunSpiderで性能を測ってみた。
初めに、JITをオンにした場合。比較対象は、『Safari 4 Public Betaの実力や如何に』で取り上げたShiretoko(3.1b3pre, ID:20090225031913)。たった二日でこれだけ違う。
(09/03/01追記)
「JITをオンにした場合」とは、"javascript.options.jit.content=true"のケースを指す。jit.chromeはfalse(デフォルト)にして計測している。
20090227 | 20090225 | |
---|---|---|
Total | 2187.4ms +/- 1.5% | 2248.8ms +/- 1.4% |
3d | 291.4ms +/- 1.4% | 300.0ms +/- 2.5% |
access | 291.8ms +/- 3.0% | 315.2ms +/- 14.2% |
bitops | 62.8ms +/- 1.7% | 72.4ms +/- 3.6% |
controlflow | 99.4ms +/- 4.7% | 99.4ms +/- 0.7% |
crypto | 133.0ms +/- 9.4% | 139.0ms +/- 3.3% |
date | 285.6ms +/- 3.1% | 292.8ms +/- 1.1% |
math | 101.0ms +/- 9.1% | 98.0ms +/- 0.9% |
regexp | 147.2ms +/- 13.4% | 143.8ms +/- 12.9% |
string | 775.2ms +/- 1.9% | 788.2ms +/- 2.0% |
次に、JITをオフにした場合。地味ではあるが、JavaScriptエンジンのいわば「基礎体力」を知るうえで重要なので、こちらの数値も軽視できない。比較対象は、『久々に不安定なShiretoko』で取り上げたShiretoko(3.1b3pre, ID:20090208033138)。こちらも着実に伸びている。
20090227 | 20090208 | |
---|---|---|
Total | 5655.4ms +/- 0.7% | 5778.2ms +/- 0.6% |
コードフリーズまでには、まだまだ修正が入る予定だ。別の言い方をすれば、Firefox 3.1 Beta 3では上記の数字がさらに改善されることになる。