我是新來分析Java中的內存問題。所以,原諒我,如果這個問題似乎幼稚JVM堆沒有發佈
我的應用程序有以下JVM參數設置運行:
-Xms3072m -Xmx3072m
-XX:MaxNewSize=1008m -XX:NewSize=1008m
-XX:PermSize=224m -XX:MaxPermSize=224m -XX:SurvivorRatio=6
我使用VisualVM的監視的使用情況:以下是我看到
問題是,即使應用程序沒有收到任何要處理的數據,使用的內存也不會關閉。當應用程序啓動時,已用空間開始很低(大約1GB),但隨着應用程序的運行而增長。然後使用的內存永遠不會下降。 我的問題是爲什麼即使在應用程序中沒有發生重大的處理以及可以設置哪些配置來糾正它時,使用的堆內存也不會停止運行。 我的理解是,如果應用程序沒有進行任何處理,那麼在這種情況下,使用的堆應該更少,可用的堆內存(或最大堆)應該保持不變(3GB)。
你的意思是最大堆大小? –
你爲什麼認爲它應該下降? –
查看其他答案/評論,但是如果確實有內存泄漏,請創建堆轉儲並使用eclipse MAT進行分析。 http://www.eclipse.org/mat/ – OldProgrammer