gpt4 book ai didi

jvm - 为什么不是所有的 java 字节码最初都解释为机器码?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:48:12 25 4
gpt4 key购买 nike

我读到了 Just-in-time compilation (JIT)据我了解,有两种方法 – Interpreter和 JIT,两者都解释 bytecode在运行时。

为什么不准备将所有字节码解释为机器码,然后才开始运行进程而不需要解释器呢?

最佳答案

延迟 JIT 编译的另一个原因与优化有关:在运行时,VM 可以检测到比编译器在编译时所能做的更多/其他它可能优化的模式。启动时的 JIT 预编译必须始终是静态的,编译器可能已经完成了同样的工作,但通过分析实际运行时行为,VM 可能会获得更多关于可能的信息优化,因此可能会产生更好的优化结果。

例如,VM 可以检测到一段代码实际上在运行时运行了一百万次,并执行编译器可能不知道的适当优化,这与现代在运行时完成的分支预测不同中央处理器。
更多信息可以在关于 "Adaptive optimization" 的维基百科文章中找到。 .

关于jvm - 为什么不是所有的 java 字节码最初都解释为机器码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15855160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com