Dalvik JIT

Dalvik JIT - Android Developers Blog

Tim Bray氏によると、今回Froyo(Android 2.2)でリリースされるJust In Time compiler(以降JIT)は、旧来のJITの弱点である起動時の準備時間(JITが動いている時間)が劇的に改善されているらしく、JIT以前のアプリケーションと比べても殆ど起動時に待たされることは無いとしている。

JITといえば正直あまり良い印象は無かった。Sun JavaのHotSpotも含めて、初期のJITは起動が遅くメモリ大食いであり、性能も良くなかったからだ。Dalvikの実行速度は現時点でも十分に速く、Snapdragon等の1GhzのCPUを使う限りゲーム以外では問題にならない、なのでFroyoにJITが乗ると知った時は、"早くなのではなく速くなる"のならあまり意味は無いなと思っていた。

しかし、実際にFroyoをNexus one上で使ってみるとその懸念は払拭された。起動が遅く感じることもないし、全体的にも薄皮が剥がれたように処理が軽くなっている。一体どんな魔法を使ったのだろう。

なお、FroyoのDalvikは、JITのために掛かる余分なメモリ(スタートアップ時にコンパイルフェーズが走るのでインタプリタに比べて余分にリソースが必要になる)が低く抑えられているそうだ。(DalvikのJITはメソッドベースではなく、トレースベースらしい。そのお陰でメモリ消費量が抑えられているのだろう。)これが多分に起動時間にも効いているのだろうか。

間もなくこのテーマのGoogle I-OでのセッションがYouTubeにもアップされるだろうと書かれているので、そちらも楽しみにしておこう。