java - 反汇编 Java JIT 编译的原生字节码

标签 java compiler-construction jvm jit

有没有办法对 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/

相关文章:

compiler-construction - 分词器应该返回语言关键字吗?

java - 通过 JNI 在 C 中创建的 JVM 不起作用

java - 如何修复 java.lang.UnsupportedClassVersionError : Unsupported major. 次要版本

java - Java 对象的身份哈希码

java - Spring Security 获取登录值

c++ - MonoDevelop 的 G++ 编译器

java - 安装 jdk 8 后 JVM 的时区不正确

java - 我如何模拟 Java 1.4 中的静态方法?

Java:标记 "n"上存在语法错误,++ 预计在此标记之后

C++ : Will compiler optimize &Variable; away?