Heap Space der VM im Programm selbst veränderbar/abrufbar (Größe belegt)?

gerritka

Mitglied
Hi,

hab einen Editor programmiert und da kann es nun je nach Größe und Menge der Bilder die eingefügt werden zu Speicherproblemen kommen (OutOfMemoryError). Da eine Art Film erstellt werden soll sind also alle Bilder im Speicher.
Ich würde es also gern gar nicht erst zu diesem Fehler kommen lassen und die Größe des derzeit genutzten Heap Speichers der VM abfragen. Nur in der API Dokumentaion hab ich nix gefunden. Die Einstellungen dafür werden ja auch außerhalb direkt beim Aufruf der VM vorgenommen.
Verbraucht denn die VM eigentlich nur physikalen Speicher oder könnte man den Heap auch ruhig größer anlegen und dieser würde dann im Notfall auf die Festplatte ausweichen?

Danke für eure Hilfe.
 
Hallo!

Geht so IMHO nur mit Java 5.

Code:
/*
 * Created on 12.02.2005@21:31:35
 *
 * TODO Licence info
 */
package de.tutorials;

import java.lang.management.ManagementFactory;
import java.lang.management.MemoryMXBean;

/**
 * @author Administrator
 *
 * TODO Explain me
 */
public class JavaMemoryInfo {

    public static void main(String[] args) {
        MemoryMXBean memoryBean = ManagementFactory.getMemoryMXBean();
        System.out.println("Current Heap Memory Usage: "
                + memoryBean.getHeapMemoryUsage());

        for (int i = 0; i < 10000000; i++) {
            new Object();
            if (i % 100 == 0)
                System.out.println("Current Heap Memory Usage: "
                        + memoryBean.getHeapMemoryUsage());
          }

    }
}

... weis nicht ob der Heap Space auch geswapped werden kann, hängt das nicht vom Betriebssystem ab?

Gruß Tom
 
Hi,

Danke für die schnelle Antwort. Das ist ja genau das, was ich gesucht hatte :)

Das mit dem swappen wär wahrscheinlich auch nur eine Notlösung gewesen, weil da dann wohl die Perfomance stark drunter gelitten hätte. Aber so kann ich ja rechtzeitig drauf hinweisen dass es Probleme geben könnte.

Danke und schönen Abend noch!
 
Zurück