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

发布于 2021-01-30 17:17:15

有什么方法可以对Java即时编译器生成的本机代码进行汇编转储吗?

和一个相关的问题:是否有任何方法可以使用JIT编译器而无需运行JVM将我的代码编译为本地机器代码?

关注者
0
被浏览
77
1 个回答
  • 面试哥
    面试哥 2021-01-30
    为面试而生,有面试问题,就找面试哥。

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

    不,无法使用JDK的JIT将Java字节码编译为本地代码并将其另存为本地可执行文件。

    即使这是可能的,它也可能没有您想象的有用。JVM进行了一些非常复杂的优化,甚至可以在必要时动态取消对代码的优化。换句话说,它不像JIT那样简单地将代码编译为本地机器语言,然后在程序运行时该本地机器语言将保持不变。同样,这也不允许您制作独立于JVM和运行时库的本机可执行文件。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看