技术上的原因是,在预热后无法保存某种JVM镜像的方法是什么?假设我想在同一平台上恢复(因此任何JIT东西仍然可以使用)。
最佳答案
根据您使用的JVM,已经有这样的功能。
JRockit是reported to be able,对于“普通”消费者JRE,存在JEP 145,但显然没有。
在SO上已经有关于此主题的一些问题,例如,尝试this one。
对于常规的Oracle JVM,不存在这样的功能,您可以摆弄CodeCache以使其尽早编译功能,也可以将"warm up"用作您的JVM。
持久化的JVM缓存会带来一些风险,就像所有缓存一样。当您的代码更改时,JIT状态将需要无效并重新计算。如果不会发生这种情况,则可以使用旧代码运行程序。这似乎是此磁盘持久性缓存仅限于“专业” JVM的主要原因。同样,在启动时发生的JIT优化也被认为足够快,可以在每次启动时重复执行,从而消除了使用过时的代码运行的风险。
关于java - 序列化热点状态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33071714/