如何启用java HotSpot VM编译器
我使用的是Java1.8.005,JavaHotSpot(TM)64位服务器虚拟机 我正在Tomcat8.0.43上运行一个java web应用程序 我最近将我的如何启用java HotSpot VM编译器,java,tomcat,jvm,jit,Java,Tomcat,Jvm,Jit,我使用的是Java1.8.005,JavaHotSpot(TM)64位服务器虚拟机 我正在Tomcat8.0.43上运行一个java web应用程序 我最近将我的.war文件放到webapps文件夹中进行了部署 这导致记录以下消息: Java HotSpot(TM)64位服务器VM警告:CodeCache已满。编译程序 已被禁用。Java HotSpot(TM)64位服务器虚拟机警告:重试 使用-XX:ReservedCodeCacheSize增加代码缓存大小= CodeCache:size=2
.war
文件放到webapps文件夹中进行了部署
这导致记录以下消息:
Java HotSpot(TM)64位服务器VM警告:CodeCache已满。编译程序
已被禁用。Java HotSpot(TM)64位服务器虚拟机警告:重试
使用-XX:ReservedCodeCacheSize增加代码缓存大小=
CodeCache:size=245760Kb已用=244058Kb最大已用=244079Kb空闲=1701Kb
界限[…]
total_blobs=48344 n方法=47669适配器=584编译:已禁用
(没有足够的连续可用空间)
如何检查编译器的当前状态,以查看它是否仍处于禁用状态
如何启用编译器?我可以简单地重新启动tomcat吗
我的应用程序运行方式似乎没有任何明显的不同(例如:在速度方面)
有趣的是,我在将同一个应用程序部署到同一个服务器时没有收到这条消息。这就是为什么我想首先重新打开编译器,而不是按照消息的建议更改设置(例如:ReservedCodeCacheSize)
然后,如果问题仍然存在,我可以查看需要更改的设置。我不久前就遇到了这个问题,这是我无法告诉您的: 一旦代码缓存变满,编译器将自动禁用 它会自动重新启动吗? 不会。它将一直关闭,直到JVM重新启动 我可以简单地重新启动tomcat吗 对。但它可能会再次发生 我的应用程序运行方式似乎没有任何明显的不同(例如:在速度方面) 从长远来看,会有一些问题,因为可以缓存和优化的代码不能再编译和存储在那里 你能做什么?
你也可以考虑使用一个企业容器,它可以让你为每个应用程序创建一个JVM。
< P>我刚才有这个问题,这就是我不能告诉你的: 一旦代码缓存变满,编译器将自动禁用 它会自动重新启动吗? 不会。它将一直关闭,直到JVM重新启动 我可以简单地重新启动tomcat吗 对。但它可能会再次发生 我的应用程序运行方式似乎没有任何明显的不同(例如:在速度方面) 从长远来看,会有一些问题,因为可以缓存和优化的代码不能再编译和存储在那里 你能做什么?你也可以考虑使用一个企业容器,它可以让你为每个应用程序创建一个JVM。
< P>处理你的个别问题+ 1个建议:- 如何检查JIT编译器是否仍处于禁用状态?
- 如何启用编译器?我可以简单地重新启动tomcat吗?