Überprüfen Sie, wieviel Speicher bufferedImage in Java verwendet?

8

Ich habe ein bufferedImage in Java. Wie kann ich sehen, wie viel Speicher belegt wird? Vielen Dank im Voraus.

    
klyngbaek 02.12.2011, 02:41
quelle

3 Antworten

12

Sie können bestimmen, wie viele Bytes die Bilddaten allein belegen:

%Vor%

Das Bild selbst nimmt etwas mehr Platz für das Farbmodell und andere Buchhaltungsinformationen ein, aber für große Bilder wird bytes der dominierende Begriff sein.

    
Ted Hopp 02.12.2011, 02:51
quelle
0

Runtime#totalMemory und Runtime#gc sollte erreichbar sein Sie eine sehr gute Annäherung. Beispiel:

%Vor%

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.

    
Jeffrey 02.12.2011 02:52
quelle
0

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.

    
jefflunt 02.12.2011 02:48
quelle