我想从我的 Windows 机器上找到在 Windows 上运行的远程 JVM (JDK 8) 的非堆内存 代码缓存 详细信息。我可以使用 jconsole 获取详细信息。但是,我需要的是使用 jstat 命令获取值。 GUI 监控工具不符合我的目的。谢谢
最佳答案
使用 jstat arg 和 java 进程的 pid,例如对于 pid 616
jstat -编译器 616
编译失败 Invalid Time 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 Memory 选项卡并在下拉列表中选择 Code Cache 显示当前 Code Cache Size
获取 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}
关于java - 如何使用 jstat 获取非堆 "code cache"详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27418068/