我使用jconsole监视javaDB(derby),我的java版本是1.6.0_27。
正如我在这篇文章中读到的那样:CodeCache is full. Compiler has been disabled, 我认为在没有 -XX:+ UseCodeCacheFlushing 的情况下不会刷新CodeCache,并且 -XX:+ UseCodeCacheFlushing 在1.7.0_4之前不会自动打开。
但是jconsole显示CodeCache的使用率下降,这让我感到惊讶:
对此有何解释?
除了JIT编译方法之外,CodeCache中还有什么?
提前致谢。
答案 0 :(得分:1)
原因可能仍然是选项:UseCodeCacheFlushing = true。 以下3版本JDK的默认配置:
Dim result = If(Convert.IsDBNull(val), "", val)
java版" 1.8.0_25" Java(TM)SE运行时环境(版本1.8.0_25-b18) Java HotSpot(TM)64位服务器VM(内置25.25-b02,混合模式)
$ java -XX:+PrintFlagsFinal -version | grep CodeCacheFlush
bool UseCodeCacheFlushing = true {product}
java version" 1.7.0_79" Java(TM)SE运行时环境(版本1.7.0_79-b15) Java HotSpot(TM)64位服务器VM(内置24.79-b02,混合模式)
$ ./java -XX:+PrintFlagsFinal -version | grep CodeCacheFlush
uintx CodeCacheFlushingMinimumFreeSpace = 1536000 {product}
intx MinCodeCacheFlushingInterval = 30 {product}
bool UseCodeCacheFlushing = true {product}
java version" 1.7.0_51" Java(TM)SE运行时环境(版本1.7.0_51-b13) Java HotSpot(TM)64位服务器VM(内置24.51-b03,混合模式)