Ideos U8150-BでのJITの効果

HuaweiAndroid端末U8150はQVGAで600MHzという貧弱な装備な割には、Froyo 2.2を搭載している。Froyoと言えばJITということで、0xBench*1ベンチマークを取ってみたが、Snapdragon機に比べるとどうにもJIT効果が良く分からなかった*2


また、Armv5teのデフォルト設定はJITがオフという情報*3もあり、本当にJIT効いてるんかいな?そもそもJITがオンになってるのはどうやって調べるの?的なTweetsのやりとりが先日あった。


結果的にはU8150もJITはオンになっていることが分かった*4のだが、どれくらい効いているの?というのは分からないままだった。


京都マイクロさんがDalvikVMのJITのON/OFFに関するTips*5というエントリをあげてくださって、Safe Modeで起動すればJITがオフになることが分かったので、早速U8150のD-Pad Centerを押しっぱなしにして再起動してみた。detectSafeMode()のコードどおり途中でブルブルしてからSafe Modeで起動した。

$ adb shell logcat | grep SAFE
I/WindowManager(  124): SAFE MODE ENABLED (menu=0 s=0 dpad=1 trackball=0)

早速、0xBenchを動かしたい所だが、Safe Modeでは/data/appを見てくれない。そこで、コマンドラインから

$ adb shell
$ am start -a android.intent.action.MAIN -n org.zeroxlab.benchmark/.Benchmark

起動するActivity名はManifest*6カンニングした。


JIT効果が一番高そうなLinpackの結果は以下のとおりで、JITにより1.65倍程度に高速化されていることが分かった。

JIT MFlops
ON 3.78
OFF 2.29