gpt4 book ai didi

java - 为什么 JVM 不缓存 JIT 编译的代码?

转载 作者:IT老高 更新时间:2023-10-28 11:23:21 26 4
gpt4 key购买 nike

Sun 的规范 JVM 实现对字节码进行了一些非常复杂的优化,以便在代码运行几次后获得接近 native 的执行速度。

问题是,为什么不将此编译后的代码缓存到磁盘以供后续使用同一函数/类时使用?

就目前而言,每次执行程序时,JIT 编译器都会重新启动,而不是使用代码的预编译版本。当字节码本质上是被解释时,添加这个特性不会显着增加程序的初始运行时间吗?

最佳答案

在不使用 @MYYN 发布的链接的情况下,我怀疑这是因为 JVM 执行的优化不是静态的,而是动态的,基于数据模式和代码模式。这些数据模式很可能会在应用程序的生命周期内发生变化,从而导致缓存的优化不是最优的。

因此,您需要一种机制来确定保存的优化是否仍然是最佳的,此时您不妨立即重新优化。

关于java - 为什么 JVM 不缓存 JIT 编译的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1992486/

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