假设系统正在运行启用了JIT的标准JVM(HotSpot),那么在同一程序的运行之间以任何方式缓存汇编代码吗?我发现没有任何信息证明情况会是这样,但相反的情况似乎是浪费。
答案 0 :(得分:1)
已经尝试过,我记得至少有一些Sun / Oracle Java版本支持这一点。但是,我还记得存在安全性和可靠性问题。
(我回忆起这个:http://docs.oracle.com/cd/B28359_01/java.111/b31225/chnine.htm#BABDCIBH。也许还有一些实验性的JVM。)
此外,HotSpot中JIT编译的一个好处是可以针对特定应用程序运行的特定使用模式优化代码。如果您缓存JIT编译的代码,则会失去该潜在的好处。
代码缓存使应用程序启动/预热更快,但在应用程序实例运行很长时间的情况下,更快的启动速度不如快速稳态性能更快。