Runtime#totalMemory
und Runtime#gc
sollte erreichbar sein Sie eine sehr gute Annäherung. Beispiel:
Wenn gc
mehrmals aufgerufen wird, erhöht sich die Wahrscheinlichkeit, dass der Garbage Collector tatsächlich ausgeführt wird, da gc
nur ein Vorschlag ist. Der Aufruf von gc
in diesem Beispiel stellt sicher, dass keine Objekte, die gesammelt worden wären, die Speicherbelegung erhöhen würden.
Ich bin mir nicht sicher, ob es einen einfachen Weg gibt, dies mit 100% Genauigkeit bis auf die Anzahl der Bytes herauszufinden, ohne es selbst zu berechnen (unter Berücksichtigung des Farbmodells, der Größe des Bildes und anderer Faktoren) ).
Sie können totalMemory () und freeMemory () berechnen auf dem Haufen vor und nach der Zuweisung, und erhalten Sie eine Schätzung auf diese Weise. Wenn andere Objekte zwischen Ihren Prüfungen zugeordnet (oder gesammelt) werden, ist Ihre Berechnung nicht korrekt.
Diese Diskussion spricht über die Größe primitiver Typen in der JVM ( ein Objekt ist eine Sammlung von vielen primitiven Objekten), mit denen Sie das herausfinden können.
Dieser Artikel gibt einen Überblick über die Speichernutzung in Java.
Tags und Links java memory-management bufferedimage