如何使用 jstat 获取非堆"code cache"详细信息



我想从我的窗口机器上查找在Windows上运行的远程JVM(JDK 8)的非堆内存代码缓存详细信息。我可以使用jconsole获取详细信息。但是,我需要的是使用 jstat 命令获取值。GUI 监控工具不符合我的目的。谢谢

使用 jstat arg 和 java 进程的 pid,例如 pid 616

JSTAT -编译器 616

编译失败 无效时间 失败类型 失败方法

7979      5       0   121.28          1 weblogic/xml/babel/baseparser/BaseParser parseSome

JSTAT -打印编译 616

编译大小类型方法

7979    331    1 weblogic/servlet/internal/CompleteMessageTimeoutTrigger timerExpired

jconsole 内存选项卡,然后选择代码缓存下拉列表中显示当前代码缓存大小

要获取 JVM 默认值(在 Windows 上查找或在 unix 上的 grep 上查找):

java -XX:+PrintFlagsFinal | find "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}

代码缓存被解释器、编译的运行时存根代码填满。

代码

缓存的关键用户是编译代码。您可以使用 JSTAT 获取编译的代码统计信息。这将提供有关代码缓存使用的体面信息。

相关内容

  • 没有找到相关文章

最新更新