2014-11-20 26 views
2

我有一個運行沒有任何標誌的應用程序設置其最大堆大小,即我使用虛擬機的默認值。我想知道他們是什麼,我想知道是否有任何jsomething命令會返回給我我的統計最大堆大小。我已經嘗試了profiling和jstat,但這些工具只顯示我目前使用的是多少。我想知道我當前的MAX堆大小是多少。如何在運行時發現最大堆大小

+0

這是一個有點通用,到目前爲止的任何代碼? – Coffee 2014-11-20 16:44:33

+0

這是一個在jetty中運行的web應用程序,我不想使用代碼獲取這個值,我想發出一個命令,讓我返回當前的最大堆大小。 Visual VM,Eclipse MAT,沒有給我這些信息... – eduardohl 2014-11-20 16:45:41

+0

[如何從Java程序中獲取JVM的最小和最大堆大小設置](http://stackoverflow.com/questions/2253976/how-to-get-min-and-max-heap-size-settings-of-a-jvm-from-within-a-java-progra) – jgr208 2014-11-20 16:45:48

回答

1

我已經成功使用jconsole來解決這個問題:

JConsole的主機名:端口(通常是1099)

JMX必須積極地使用它。

轉到VMSummary部分並查找Maximum heap size。

0
# 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>