Bei Google fand ich folgendes, aus der IBM JVM FAQ (wie wäre es mit einem NLA):
Wann schrumpft der Java-Heap?
Heap-Shrinkage tritt auf, wenn GC feststellt, dass viel freier Heap-Speicher vorhanden ist und die Freigabe von Heap-Speicher der Systemleistung zugute kommt. Heap-Shrinkage findet nach der GC statt, aber wenn alle Threads noch in der Schwebe sind.
Die Sun JVM funktioniert ähnlich. Im Folgenden finden Sie einen Auszug aus einem Artikel des Oracle Technology Network mit dem Titel Ergonomie in der virtuellen Java-Maschine 5.0 .
Der Heap wächst oder schrumpft auf eine Größe, die dem gewählten Durchsatzziel entspricht. Einige Schwankungen in der Größe des Heaps während der Initialisierung und während einer Änderung im Verhalten der Anwendung können erwartet werden.
...
Es ist typisch, dass die Größe des Heaps schwankt, wenn der Garbage Collector versucht, konkurrierende Ziele zu erfüllen. Dies gilt selbst dann, wenn die Anwendung einen stabilen Zustand erreicht hat. Der Druck, ein Durchsatzziel zu erreichen (was einen größeren Heap erfordern kann), konkurriert mit den Zielen einer maximalen Pausenzeit und eines minimalen Platzbedarfs (die beide einen kleinen Heap erfordern können).
Ich schlage vor, dass Sie sich den Rest des Dokuments ansehen; vielleicht finden Sie dort weitere Informationen, die für Ihr Problem relevant sind.
0 Stimmen
Bitte fügen Sie Ihrer Frage Bilder bei, anstatt Links anzugeben (die nicht mehr funktionieren)