在使用ASM 5.0.3 / Java 1.7_80 / Apache Tomcat-6.0.35检测java Web应用程序时,我遇到了一个奇怪的问题。
服务器在1或2天内启动后代码缓存内存完全填满100%并且从不收集垃圾。相同的是没有仪表的验证,它工作正常&代码缓存永远不会填满100%
我正在使用" JSRInlinerAdapter "在我的仪器代码中。由于我的应用程序包含 48到51 (1.4到1.7)
的所有类文件版本我的问题是 - 当JIT编译器编译这些方法时,代码缓存内存是否填充了内联方法? (因为我使用 JSRInlinerAdapter )?
其他信息
我正在使用以下VM参数
-Djava.util.Arrays.useLegacyMergeSort=true
-XX:+UseCodeCacheFlushing
-Djsse.enableCBCProtection=false
-XX:NewSize=384m
-XX:MaxNewSize=384m
-XX:PermSize=384m
-XX:MaxPermSize=384m
-XX:+DisableExplicitGC
-XX:MaxGCPauseMillis=400
-XX:MaxGCMinorPauseMillis=100
-XX:+UseG1GC
-XX:+UnlockDiagnosticVMOptions
-XX:+G1SummarizeConcMark
-XX:+UseTLAB -XX:NewRatio=3
-XX:+UseCMSInitiatingOccupancyOnly
-XX:InitiatingHeapOccupancyPercent=30
-XX:ConcGCThreads=5
-XX:ParallelGCThreads=20
-XX:+UseFastAccessorMethods
-XX:+UseAdaptiveGCBoundary
-XX:+UseStringCache
-XX:+AggressiveOpts
-Xms1536m
-Xmx1536m
快速填写代码缓存的原因是什么?