虚拟机优化

gro*_*rom 9 java jit jvm cil

我正在使用Java中的玩具解释器,我正在考虑编写一个可以为Java虚拟机生成字节码的简单编译器.这让我想到,目标虚拟机(如JVM和CLI)的编译器需要做多少优化?

Just In Time(JIT)编译器是否进行常量折叠,窥视孔优化等?

dli*_*sin 6

我只是要添加两个链接,它们很好地解释了Java 的字节码以及运行时对 JVM的各种优化


Mik*_*ffe 5

优化是使 JVM 成为长期运行应用程序环境可行的原因,您可以打赌 SUN、IBM 和朋友们正在尽最大努力确保他们能够以尽可能高效的方式优化您的字节码和 JIT 编译的代码。

话虽如此,如果您认为可以预先优化字节码,那么它可能不会造成太大伤害。

然而,值得注意的是,当仅呈现 Java 编译器倾向于构造的那种字节码时,JVM 往往会表现得更好(而不是崩溃)。当字节码的排列正确但与 javac 产生的排列不同时,优化被遗漏甚至 JVM 崩溃并不是未知的。希望这种事情现在更多的是过去,但可能是需要注意的事情。