首页  

jvm codecache 相关整理     所属分类 jvm 浏览量 323
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优化要点