我已经阅读了一些关于JIT编译器所做的文章和帖子。有人说JIT编译器在运行之前编译整个程序,有些人说JIT编译"片段" - 没有定义什么是"片段"是的,有人说它按方法编译。有人说它在执行之前编译每个语句。但是在执行它之前肯定编译整个程序与正常编译没什么不同?
哪个版本正确?
答案 0 :(得分:1)
从IDE编译程序时,会得到一个由中间语言(IL)代码组成的EXE。 JITter是特定于平台的,它将这个可移植的IL转换为本机代码(本地机器语言)。
在Java中,JIT编译器在方法入口处运行。资源: http://docs.oracle.com/cd/E15289_01/doc.40/e15058/underst_jit.htm
.NET也是每个方法的JIT。资源: http://msdn.microsoft.com/en-us/library/ht8ecch6(v=vs.71).aspx