有没有办法对 Java 即时编译器生成的 native 代码进行汇编转储?
还有一个相关的问题:有没有什么方法可以在不运行 JVM 的情况下使用 JIT 编译器将我的代码编译为 native 代码?
最佳答案
是的,there is a way打印生成的 native 代码(需要 OpenJDK 7)。
不,没有办法使用 JDK 的 JIT 将 Java 字节码编译为 native 代码并将其保存为 native 可执行文件。
即使这是可能的,它也可能没有你想象的那么有用。 JVM 做了一些非常复杂的优化,如果需要,它甚至可以动态地去优化代码。换句话说,它并不像 JIT 将您的代码编译为本地机器语言那么简单,然后在程序运行时该本地机器语言将保持不变。此外,这不会让您制作独立于 JVM 和运行时库的 native 可执行文件。
关于java - 反汇编 Java JIT 编译的原生字节码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6911603/