JVM Heap nicht freigegeben

Ich bin neu in der Analyse von Speicherproblemen in Java. Also verzeih mir, wenn diese Frage naiv erscheint

Ich habe eine Anwendung, die mit den folgenden JVM-Parametern ausgeführt wird:

-Xms3072m -Xmx3072m 
-XX:MaxNewSize=1008m -XX:NewSize=1008m 
-XX:PermSize=224m -XX:MaxPermSize=224m -XX:SurvivorRatio=6 

Ich verwende visualVM, um die Nutzung zu überwachen: Folgendes sehe ich

Das Problem ist, dass der verwendete Speicher nicht ausfällt, auch wenn die Anwendung keine Daten zur Verarbeitung empfängt. Wenn die Anwendung gestartet wird, beginnt der belegte Speicherplatz niedrig (ca. 1 GB), wächst jedoch mit der Ausführung der Anwendung. und dann geht der verwendete Speicher nie aus. Meine Frage ist, warum der verwendete Heap-Speicher nicht ausfällt, auch wenn in der Anwendung keine größere Verarbeitung stattfindet, und welche Konfigurationen zur Korrektur festgelegt werden können. Wenn die Anwendung keine Verarbeitung durchführt, sollte der verwendete Heap-Speicher geringer sein und der verfügbare Heap-Speicher (oder der maximale Heap-Speicher) in diesem Fall gleich bleiben (3 GB).

Antworten auf die Frage(2)

Ihre Antwort auf die Frage