jvm codecache 相关整理
所属分类 jvm
浏览量 1655
codeCache 存放 JIT编译的代码 和 本地方法代码(JNI)
热部署 动态编译 譬如 jsp drools 容易把 codecache撑爆
Java HotSpot(TM) 64-Bit Server VM warning: CodeCache is full. Compiler has been disabled.
JIT编译器停止,并且不会被重新启动,回到解释执行 , 性能变差
-XX:+UseCodeCacheFlushing
在CodeCache装满之前,在JIT被关闭之前,清理一些CodeCache的代码,如果清理后还是没有空间,那么JIT依然会关闭。
针对JIT编译器的调优
1 jvm启动模式
2 设置jvm codeCache大小
3 调整编译阈值
4 检查编译过程
5 编译线程
开启 codecache回收 -XX:+UseCodeCacheFlushing
增大codecache大小 -XX:InitialCodeCacheSize=1024m -XX:ReservedCodeCacheSize=1024m
-XX:CICompilerCount=n 指定JIT编译器线程数量
-XX:CompileThreshold=n 指定一个方法的调用次数,触发JIT 编译器编译
-Xcomp 指定JVM在第一次使用时把所有的字节码编译成本地代码. (即CompileThreshold=1)
-Xbatch 在前台编译方法,直到编译完成方法才能执行
-Xint 使用解释模式,不激活JIT编译器 (即CompileThreshold=0)
不加 codecache参数
mempool{name="Code Cache",subtype="used",type="NON_HEAP"} 8722752
mempool{name="Code Cache",subtype="init",type="NON_HEAP"} 2555904
mempool{name="Code Cache",subtype="committed",type="NON_HEAP"} 8912896
mempool{name="Code Cache",subtype="max",type="NON_HEAP"} 251658240
加codecache参数 限制大小
-XX:InitialCodeCacheSize=1024m -XX:ReservedCodeCacheSize=1024m
mempool{name="Code Cache",subtype="used",type="NON_HEAP"} 6388416
mempool{name="Code Cache",subtype="init",type="NON_HEAP"} 1073741824
mempool{name="Code Cache",subtype="committed",type="NON_HEAP"} 1073741824
mempool{name="Code Cache",subtype="max",type="NON_HEAP"} 1073741824
JVM编译器
java8 jvm 参数
jvm参数查看
jvm相关知识点
jdk jcmd 使用
jcmd PerfCounter 说明
JVM MemoryUsage中init,committed,used,max说明
上一篇
下一篇
熵池与SecureRandom
老程序员的20条编码原则
sql优化建议
JVM MemoryUsage中init,committed,used,max说明
堆外内存使用实例
redis优化要点