[問題] JIT 問題

作者: gn00618777 (非常念舊)   2014-08-11 16:09:02
我查詢了網路上以及書本
版本1: JIT是將source code 轉換成 byte code之後,在程式執行期間
再將byte code編譯成機械碼。
版本2: 擁有JIT表示Dalvik將APP的byte code轉換成二進制組合指令,那將
以原生方式執行在目標的CPU上,而不是由VM一次解譯一條指令。
這兩者,哪種比較對阿.....版本1說得好像就是執行期間,需要才編譯成機械碼。
這和版本2是直接說"不是由VM一次解譯一條指令"好像有點抵觸,希望能為我解惑,
謝謝。版本2出自於O'REILY翻譯的書,我個人覺得翻譯的好爛,前因後果要自己兜起來。
作者: mshockwave (夏克維夫)   2014-08-11 21:29:00
基本上是2 但jit只會編譯那些夠"熱"的指令它會統計指令被執行的次數 超過門檻就編成native丟進android的匿名共享記憶體(ashmem)google io 2010有一個議程就在說這個
作者: gn00618777 (非常念舊)   2014-08-11 22:22:00
請問,版本二他說轉換成二進制組合指令他是指機械碼嗎
作者: WPC001 (好悶, 迷惘~~)   2014-08-11 22:32:00
1也沒錯啊, 只是沒描述清楚而已, 是在執行期進行轉換的但沒說一次轉換多少(基本上不是一次一個指令...)
作者: typepeter (∵Peter∴笑點)   2014-08-12 00:15:00
版本二的可能是指Dalvik的Dex格式,而非真正機器碼

Links booklink

Contact Us: admin [ a t ] ucptt.com