gpt4 book ai didi

java - 带 JIT 和不带 JIT 的 JVM 之间的区别

转载 作者:行者123 更新时间:2023-12-01 17:26:04 26 4
gpt4 key购买 nike

我引用了Oracle的以下文档:

http://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/geninfo/diagnos/underst_jit.html#wp1080014

在“1. JRockit JVM 运行 JIT 编译”一节中提到,JIT JVM 的启动时间较长,执行时间较短,而没有 JIT 的 JVM 则相反。

我很困惑,因为据我所知,JIT 根据程序的执行来编译代码,因此编译速度很快。并且代码将被优化,因此执行时间也会很快。

他们想用这一点来说明什么?我没有正确理解它。

最佳答案

基本上他们所说的是 JIT 编译需要时间。 HotSpot 实际上编译了两次代码 - 首先未优化,然后对常用部分进行优化。

所以当你的程序启动时,根据VM类型,它首先以解释模式运行字节码,或者等待它编译并切换到编译版本,然后如果代码被频繁使用,则再次编译它并进行更多优化。这一切都需要资源和时间,因此启动速度较慢,但​​当程序预热时,它运行得很快。

在解释模式下,没有 JIT,VM 会立即开始解释代码,因此启动速度更快,但性能较差。

关于java - 带 JIT 和不带 JIT 的 JVM 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14907968/

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