AMD已在博客上发布了他们的新解决方案,以解决已编译Java方法的代码缓存变满的问题。 该解决方案是与Sun / Oracle Hotspot团队协作开发的。
以前,唯一的解决方案是关闭JIT编译器,这意味着不再编译。
AMD的解决方案允许根据应用程序的行为有选择地清除代码缓存。 当代码缓存已满时,将首先卸载最早的编译Java方法,这将允许最新的重新部署版本运行得更快。 如果在清理后的一段时间内未调用任何标记为删除的方法,则将使用Java虚拟机中的现有机制将其删除。
此新功能在OpenJDK 7 build83中可用,但默认情况下处于禁用状态。
翻译自: https://jaxenter.com/overcoming-full-code-caches-100790.html