Das Problem, dem ich gegenüberstand, ist, dass der verwendete Speicher meiner Anwendung nur 100 MB beträgt, danach hat sie 50 MB abgenommen, aber im Window Task Manager hat sie 150 MB angezeigt und immer beibehalten oder erhöht, aber nicht verringert. Wie können wir den Arbeitsspeicher (Privater Arbeitssatz) im Aufgabenmanager reduzieren?
Was Sie in JConsole
(oder anderen Überwachungstools) sehen, ist das Muster, in dem der Java-Speicher verwendet wird.
Der Speicher der JVM wird normalerweise auf diese Bereiche aufgeteilt (was Sie auch in Überwachungswerkzeugen sehen).
Max Heap
Größe, es reduziert den nativen Speicher
verfügbar). Der Windows Task-Manager zeigt das nicht an. Es zeigt den von Ihrer Anwendung verwendeten ganzen Speicher an (Heap + Nicht-Heap + nativer Teil).
Beachten Sie auch, dass in der Regel Prozesse, die mehr Speicher vom Betriebssystem anfordern, von diesen Speicher gehalten werden, selbst wenn die tatsächliche Anwendung "Speicher" freigibt. Diese Speicherseiten wurden als Teil des Adressraums des Prozesses zugeordnet. In Ihrem Task-Manager würden Sie also kein Muster mit sinkendem Speicher sehen, aber das würde nicht auf einen Speicherleck von Ihrer Anwendung hindeuten.
Sie können also nicht den Speicher reduzieren, den Sie vom Task-Manager sehen, aber der Speicher, den Sie vom Überwachungstool sehen, sollte irgendwann sinken, sonst könnte das auf einen Speicherverlust hindeuten.
Tags und Links java memory profiling monitoring jvm