我想从我的 windows 机器上找到在 windows 上运行的远程 JVM (JDK 8)的非堆内存 代码缓存详细信息。我可以使用jconsole获取详细信息。但是,我需要的是使用jstat命令获取值。GUI 监控工具不符合我的目的。谢谢
问问题
1585 次
2 回答
1
代码缓存被解释器、编译的、运行时存根代码填满。
codecache 的关键用户是编译后的代码。您可以使用 jstat 获取编译后的代码统计信息。这将提供有关代码缓存使用的体面信息。
于 2014-12-11T09:07:02.297 回答
0
使用 java 进程的 jstat arg 和 pid,例如 pid 616
jstat - 编译器 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 | 找到“代码缓存”
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}
于 2019-10-25T14:09:05.120 回答