Re: [問題] JIT 問題

看板AndroidDev作者 (非常念舊)時間9年前 (2014/08/11 22:34), 9年前編輯推噓0(003)
留言3則, 1人參與, 最新討論串2/5 (看更多)
※ 引述《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來編譯比較省電? 這是我的理解,希望有神人為我補充...謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.169.65.21 ※ 文章網址: http://www.ptt.cc/bbs/AndroidDev/M.1407767667.A.8D5.html ※ 編輯: gn00618777 (118.169.65.21), 08/11/2014 22:38:32

08/12 00:15, , 1F
若是指libART,是真的變成接近全機器碼(JIT的結果Dump)
08/12 00:15, 1F

08/12 00:16, , 2F
若是指單純Dalvik的DEX格式,則只是變形版的Bytecode
08/12 00:16, 2F

08/12 00:17, , 3F
事實上也不必這麼執著於這點細節 實際用到再研究吧...
08/12 00:17, 3F
文章代碼(AID): #1JwDHpZL (AndroidDev)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 2 之 5 篇):
文章代碼(AID): #1JwDHpZL (AndroidDev)