【发布时间】:2015-10-16 15:58:47
【问题描述】:
在预热后无法保存某种类型的 JVM 映像的技术原因是什么?假设我想在同一个平台上恢复(所以任何 JIT 东西仍然可以工作)。
【问题讨论】:
-
请提供你的努力。
在预热后无法保存某种类型的 JVM 映像的技术原因是什么?假设我想在同一个平台上恢复(所以任何 JIT 东西仍然可以工作)。
【问题讨论】:
根据您使用的 JVM,已经有这样的功能。 JRockit 是 reported to be able,对于“普通”消费者 JRE,JEP 145 存在但显然没有成功。
SO 上已经有关于这个主题的一些问题,例如,试试this one。
对于常规的 Oracle JVM,不存在这样的函数,您可以使用 CodeCache 让它尽早编译函数或 "warm up" 您的 JVM。
持久化 JVM 缓存会带来一些风险,就像所有缓存一样。当您的代码更改时,JIT 状态将需要失效并重新计算。如果这不会发生,您将使用旧代码运行您的程序。这似乎是该磁盘持久缓存仅限于“专业”JVM 的主要原因。此外,在启动时发生的 JIT 优化被认为足够快,可以在每次启动时重复它,从而消除运行过时代码的风险。
【讨论】: