我想在Windows机器上的Windows上运行远程JVM(JDK 8)的非堆内存 代码缓存详细信息。我可以使用 jconsole 获取详细信息。但是,我需要的是使用 jstat 命令获取值。 GUI监控工具不能满足我的需求。感谢
答案 0 :(得分:2)
代码缓存充满了解释器,已编译的运行时存根代码。
codecache的关键用户是编译代码。 你可以使用jstat获得编译的代码统计信息。这将提供有关代码缓存使用的正确信息。
答案 1 :(得分:0)
使用java进程的jstat arg和pid例如pid 616
jstat -compiler 616
编译失败的无效时间FailedType FailedMethod
7979 5 0 121.28 1 weblogic/xml/babel/baseparser/BaseParser parseSome
jstat -printcompilation 616
编译尺寸类型方法
7979 331 1 weblogic/servlet/internal/CompleteMessageTimeoutTrigger timerExpired
jconsole的“内存”标签,然后在下拉菜单中选择“代码缓存”,显示当前的代码缓存大小
要获取JVM默认值(在Windows上查找或在unix上查找grep):
java -XX:+ PrintFlagsFinal |找到“ CodeCache”
uintx CodeCacheExpansionSize = 65536 {pd product}
uintx CodeCacheMinimumFreeSpace = 512000 {product}
uintx InitialCodeCacheSize = 2555904 {pd product}
bool PrintCodeCache = false {product}
bool PrintCodeCacheOnCompilation = false {product}
uintx ReservedCodeCacheSize = 251658240 {pd product}
bool UseCodeCacheFlushing = true {product}