[问题] 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