如何在运行时找到最大堆大小

3

我有一个应用程序在没有设置其最大堆大小的任何标志的情况下运行,即我正在使用VM默认值。 我想知道它们是什么,并且我想知道是否有任何命令可以向我返回我的最大堆大小统计信息。 我已经尝试过分析和jstat,但这些工具只向我显示我当前使用了多少。 我想知道我的当前最大堆大小。


这有点笼统,到目前为止有任何代码吗? - Caffeinated
这是一个在Jetty中运行的Web应用程序,我不想使用代码获取此值,我想触发一个命令,返回我的当前最大堆大小。Visual VM,Eclipse MAT都没有给我这个信息... - eduardohl
不,我不想从应用程序内部执行该操作。 - eduardohl
https://dev59.com/pWDVa4cB1Zd3GeqPZxQu - jgr208
显示剩余3条评论
2个回答

1

我已经用jconsole解决了这个问题:

jconsole 主机名:端口(通常为1099)

jmx 必须处于活动状态才能使用。

进入 VMSummary 部分,查找最大堆大小。


1
# To get the pid of the java process you want to check    
jps 

# Gives you all the info on the process. Look for -XX:MaxHeapSize=
jinfo <pid>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接