【发布时间】:2014-11-19 20:38:25
【问题描述】:
假设系统正在运行启用了 JIT 的标准 JVM (HotSpot),那么在同一程序的运行之间是否以任何方式缓存了 jitted 汇编代码?我找不到任何信息证明会出现这种情况,但相反似乎是一种浪费。
【问题讨论】:
标签: java jvm jvm-hotspot
假设系统正在运行启用了 JIT 的标准 JVM (HotSpot),那么在同一程序的运行之间是否以任何方式缓存了 jitted 汇编代码?我找不到任何信息证明会出现这种情况,但相反似乎是一种浪费。
【问题讨论】:
标签: java jvm jvm-hotspot
这已经尝试过了,我记得至少有一些 Sun/Oracle 版本的 Java 支持这个。但是,我还记得存在/存在安全性和可靠性问题。
(我想起了这个:http://docs.oracle.com/cd/B28359_01/java.111/b31225/chnine.htm#BABDCIBH。也许还有一些实验性的 JVM。)
此外,HotSpot 中 JIT 编译的好处之一是可以针对特定应用程序运行的特定使用模式优化代码。如果您缓存 JIT 编译的代码,您将失去潜在的好处。
代码缓存使应用程序启动/预热更快,但在应用程序实例长时间运行的情况下,更快的启动不如更快的稳态性能重要。
【讨论】: