Java How To
 


Informationen über benutzten und freien Speicher

How To ...

Wie kann man herausfinden, wieviel Speicher von der VM verwendet wird und wieviel noch zur Verfügung steht?

Hintergründe

Die VM verwendet einen Heap zum Speichern von Objekten und einen nicht heap-artig organisierten Speicher für die geladenen Klassen.

Für das Monitoring großer Systeme, z.B. Application-Servern, benötigt man Informationen über den aktuell benutzen und den noch freien Speicher.

So geht's

Die Methode Runtime.getRuntime() liefert das aktuelle Runtime-Objekt, dessen Methoden maxMemory(), freeMemory() und totalMemory() den maximal verfügbaren, den augenblicklich freien und den augenblicklich zur Verfügung stehenden Speicher in Bytes.

Seit Java SE 5 gibt es das Package java.lang.management, das sogenannte MXBeans nach der Java Management Extensions (JMX) Spezifikation enthält. Diese erlauben unter anderem auch den Zugang zu den Speicherinformationen. Auch hier wird über eine Fabrik-Methode ein MemoryMXBean geholt, das dann mit den Methoden getHeapMemoryUsage().getUsed(), getHeapMemoryUsage().getCommitted() und getHeapMemoryUsage().getMax() den aktuell benutzten, den verfügbaren und den maximal verfügbaren Speicher berechnen kann.

Beim Ausführen des Programms werden Sie feststellen, dass die berechneten Werte der beiden Alternativen identisch sind, was natürlich auch so sein muss.

Formatierter Quell-Code

Java-Source