在将JVM加热后保存某种JVM图像的方法有哪些技术原因?假设我想在同一平台上恢复(所以任何JIT的东西都可以工作)。
答案 0 :(得分:6)
根据您使用的JVM,已经有这样的功能。 JRockit是reported to be able,对于#34;正常"消费者JRE a JEP 145存在,但显然没有成功。
有关此主题的一些问题已在SO上提出,例如尝试this one。
对于常规的Oracle JVM,不存在这样的函数,你可以使用CodeCache来尽可能早地编译函数或者{JVM} "warm up"。
持久化JVM缓存带来一些风险,就像所有缓存一样。当代码更改时,JIT状态将需要失效并重新计算。如果这不会发生,您将使用旧代码运行您的程序。这似乎是这个磁盘持久缓存的主要原因仅限于" professional" JVM。此外,在开始时发生的JIT优化被认为足够快以在每次启动时重复它,从而消除了使用过时代码运行的风险。