作者gn00618777 (非常念旧)
看板AndroidDev
标题Re: [问题] JIT 问题
时间Mon Aug 11 22:34:24 2014
※ 引述《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://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1407767667.A.8D5.html
※ 编辑: gn00618777 (118.169.65.21), 08/11/2014 22:38:32
1F:→ typepeter: 若是指libART,是真的变成接近全机器码(JIT的结果Dump) 08/12 00:15
2F:→ typepeter: 若是指单纯Dalvik的DEX格式,则只是变形版的Bytecode 08/12 00:16
3F:→ typepeter: 事实上也不必这麽执着於这点细节 实际用到再研究吧... 08/12 00:17