Java代码编译器优化

时间:2013-09-15 11:01:34

标签: java optimization compiler-construction

我想知道 - 给定一个java代码,我怎样才能看到Java编译器如何优化它?

是否有适用于此的JDK工具?

尝试谷歌,但没有任何相关性。

4 个答案:

答案 0 :(得分:3)

要查看编译器优化的内容,只需反编译字节码,例如使用javapJD

要查看即时编译器优化的内容,activate debug logging(并阅读反汇编的机器代码)。

答案 1 :(得分:2)

您可以使用javap来反汇编代码。

值得注意的是,javac通常在优化方面做得很少;在现代JVM中,大多数优化都是由just-in-time compiler完成的,它将java字节码转换为本机机器码。

答案 2 :(得分:1)

javac只会做一点优化,如果有的话。

Java中的优化主要由JIT编译器在运行时完成。 JIT执行的优化越多,它将生成的代码越好,但初始延迟也会增加。

获取Java即时编译器生成的本机代码:PrintAssembly需要OpenJDK 7

调试选项:Java HotSpot VM

-XX:-CITime ---- Prints time spent in JIT Compiler. (Introduced in 1.4.0.)

答案 3 :(得分:0)

有一些工具可以将字节代码转换回java代码。您可以编译代码,并获取.class文件,将它们反向工程为java代码并查看优化。