【问题标题】:Java code compiler optimization [closed]Java代码编译器优化[关闭]
【发布时间】:2013-09-15 11:01:33
【问题描述】:

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

有这方面的 JDK 工具吗?

尝试谷歌搜索,但没有任何相关信息。

【问题讨论】:

标签: java optimization compiler-construction


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

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

      调试选项:Java HotSpot VM

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-08-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-05-08
          • 1970-01-01
          • 2016-02-14
          • 1970-01-01
          相关资源
          最近更新 更多