作者gn00618777 (非常念旧)
看板AndroidDev
标题[问题] JIT 问题
时间Mon Aug 11 16:09:02 2014
我查询了网路上以及书本
版本1: JIT是将source code 转换成 byte code之後,在程式执行期间
再将byte code编译成机械码。
版本2: 拥有JIT表示Dalvik将APP的byte code转换成二进制组合指令,那将
以原生方式执行在目标的CPU上,而不是由VM一次解译一条指令。
这两者,哪种比较对阿.....版本1说得好像就是执行期间,需要才编译成机械码。
这和版本2是直接说"不是由VM一次解译一条指令"好像有点抵触,希望能为我解惑,
谢谢。版本2出自於O'REILY翻译的书,我个人觉得翻译的好烂,前因後果要自己兜起来。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.146.76.147
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1407744546.A.0A5.html
※ 编辑: gn00618777 (211.21.170.157), 08/11/2014 16:27:58
1F:→ mshockwave: 基本上是2 但jit只会编译那些够"热"的指令 08/11 21:29
2F:→ mshockwave: 它会统计指令被执行的次数 超过门槛就编成native 08/11 21:30
3F:→ mshockwave: 丢进android的匿名共享记忆体(ashmem) 08/11 21:30
4F:→ mshockwave: google io 2010有一个议程就在说这个 08/11 21:34
5F:→ gn00618777: 请问,版本二他说转换成二进制组合指令他是指机械码吗 08/11 22:22
6F:→ WPC001: 1也没错啊, 只是没描述清楚而已, 是在执行期进行转换的 08/11 22:32
7F:→ WPC001: 但没说一次转换多少(基本上不是一次一个指令...) 08/11 22:33
8F:推 typepeter: 版本二的可能是指Dalvik的Dex格式,而非真正机器码 08/12 00:15