【发布时间】:2012-02-06 00:31:48
【问题描述】:
我仍然不清楚通过 JIT 编译器将字节码编译成机器码的概念。我想知道为什么它比非 JIT 解释器产生更快的代码。有人可以给我一个很好的例子来说明这个过程是如何完成的吗?
【问题讨论】:
-
因为执行本机机器语言比执行字节码要快。字节码是虚拟机的“机器语言”,但它最终还是会修改内存中的真实数据。 JITting 它允许本地机器代码执行相同的操作。
-
你能给我一个简短的例子,说明这个“修改内存中的真实数据”是如何完成的(JIT 与非 JIT)?
-
看一些反汇编的字节码可以看到非JIT版本。查看一些汇编语言以查看 JIT 版本。
-
您使用什么命令来获取 Java 中的非 JIT / JIT 版本?
-
您没有获得 JIT 版本(没有一些困难)。
javap -c反汇编一个类文件并显示字节码。汇编语言的例子无处不在。
标签: java compiler-construction interpreter jit jvm-hotspot