Re: [問題] JIT 問題

作者: gn00618777 (非常念舊)   2014-08-11 22:34:24
※ 引述《gn00618777 (非常念舊)》之銘言:
: 我查詢了網路上以及書本
: 版本1: JIT是將source code 轉換成 byte code之後,在程式執行期間
: 再將byte code編譯成機械碼。
: 版本2: 擁有JIT表示Dalvik將APP的byte code轉換成二進制組合指令,那將
: 以原生方式執行在目標的CPU上,而不是由VM一次解譯一條指令。
: 這兩者,哪種比較對阿.....版本1說得好像就是執行期間,需要才編譯成機械碼。
: 這和版本2是直接說"不是由VM一次解譯一條指令"好像有點抵觸,希望能為我解惑,
: 謝謝。版本2出自於O'REILY翻譯的書,我個人覺得翻譯的好爛,前因後果要自己兜起來。
我還是不太懂版本二..
"不是由VM一次解譯一條指令",意思是說不是在執行中需要才編譯?
是說JIT已經在執行前將APP byte code編譯成機械碼了嗎?這樣在執行前
是不是不用佔用CPU來編譯比較省電?
這是我的理解,希望有神人為我補充...謝謝。
作者: typepeter (∵Peter∴笑點)   2014-08-12 00:15:00
若是指libART,是真的變成接近全機器碼(JIT的結果Dump)若是指單純Dalvik的DEX格式,則只是變形版的Bytecode事實上也不必這麼執著於這點細節 實際用到再研究吧...

Links booklink

Contact Us: admin [ a t ] ucptt.com