2011年3月10日 星期四

Dalvik JIT 測試

Google在Android 2.2導入Just-In-Time(JIT)編譯,JIT主要在程式執行的時把byte code轉換成native code,所以能讓執行速度更快。表現當然還無法和C/C++相比,但很明顯提升Android程式的速度。


今天在s3C6401進行了Porting有JIT與沒有JIT的測試,不同在於我測試的版本不是2.2而是2.1(Eclair),開啟的方法很簡單只要在原始碼跟目錄下編輯一個檔案名稱為 buildspec.mk ,檔案內容中只要加只要加一行:

WITH_JIT:=true

另外,如果是2.2(Froyo)上述方法改為編輯 dalvik/vm/Android.mk 中:
ifeq ($(TARGET_ARCH_VARIANT),armv5te)
WITH_JIT := false
endif
改成:
ifeq ($(TARGET_ARCH_VARIANT),armv5te)
WITH_JIT := true
endif

然後進行mak,就完成了。


以下測試結果使用的軟體名稱: Linpack for Android
網址: http://www.greenecomputing.com/apps/linpack/

沒有開啟JIT結果:


開啟JIT結果:


經過測試了幾次結果,大致上平均多出了1.6倍的計算速度(61.5%),不過今天的測試確定了在2.1版中就有支援JIT的編譯,只是今天只有測試速度並沒有進行穩定度及記憶體消耗上的測試,所以也不知道在2.1中是否穩定,有興趣可以試試看ㄡ~。

參考:
http://android-developers.blogspot.com/2010/05/dalvik-jit.html
http://www.google.com/events/io/2010/sessions/jit-compiler-androids-dalvik-vm.html
http://zh.wikipedia.org/zh-tw/JIT

沒有留言:

張貼留言