反汇编Java JIT编译的本机字节码

tsk*_*zzy 28 java compiler-construction jit jvm

有没有办法对Java即时编译器生成的本机代码进行汇编转储?

还有一个相关的问题:有没有办法在不运行JVM的情况下使用JIT编译器将我的代码编译成本机代码?

Jes*_*per 17

是的,有一种方法可以打印生成的本机代码(需要OpenJDK 7).

不,没有办法使用JDK的JIT将Java字节码编译为本机代码,并将其保存为本机可执行文件.

即使这是可能的,它可能没有您想象的那么有用.JVM进行了一些非常复杂的优化,如果需要,它甚至可以动态地对代码进行去优化.换句话说,它并不像JIT将代码编译为本机机器语言那么简单,然后在程序运行时本机语言将保持不变.此外,这不会让您创建独立于JVM和运行时库的本机可执行文件.