Mozilla Flux

Mozilla関係の情報に特化したブログです。

jit.chrome復活

最新の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では上記の数字がさらに改善されることになる。