Java 代码编译器优化



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

有没有用于此的JDK工具?

试图谷歌,但没有出现任何相关内容。

要查看编译器优化了什么,只需反编译字节码,例如使用 javap 或 JD。

要查看实时编译器优化了什么,请激活调试日志记录(并读取反汇编的机器代码)。

您可以使用

javap来反汇编代码。

值得记住的是,javac通常很少通过优化来做;在现代JVM中,大多数优化都是由将java字节码转换为本机机器码的即时编译器完成的。

javac只会做很少的优化,如果有的话。

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

要获取由 Java 即时编译器生成的本机代码,请执行以下操作: PrintAssembly 需要 OpenJDK 7

调试选项:Java 热点虚拟机

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

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

最新更新