Wie gehe ich mit dem Fehler "java.lang.OutOfMemoryError: Java Heap Space" um?

Ich schreibe eine clientseitigeSchwinge application (grafischer Schriftdesigner) aufJava 5. Vor kurzem stoße ich aufjava.lang.OutOfMemoryError: Java heap space Fehler, weil ich nicht konservativ in Bezug auf die Speichernutzung bin. Der Benutzer kann eine unbegrenzte Anzahl von Dateien öffnen, und das Programm behält die geöffneten Objekte im Speicher. Nach kurzer Recherche fand ichErgonomie in der 5.0 Java Virtual Machine und andere, die auf Windows-Rechnern sagen, dass die JVM die maximale Heap-Größe standardmäßig auf @ festle64MB.

Wie soll ich in dieser Situation mit dieser Einschränkung umgehen?

Ich könnte das @ erhöhmax heap size usingBefehlszeil -Option auf Java, aber das würde es erfordern, den verfügbaren RAM herauszufinden und ein Startprogramm oder Skript zu schreiben. Außerdem wird das Problem durch Erhöhen auf ein bestimmtes Maximum nicht endgültig beseitigt.

Ich könnte einen Teil meines Codes neu schreiben, um Objekte häufig im Dateisystem zu speichern (die Verwendung der Datenbank ist dasselbe), um Speicherplatz freizugeben. Es könnte funktionieren, aber es ist wahrscheinlich auch viel Arbeit.

Wenn Sie mich auf Details der obigen Ideen oder einige Alternativen wie @ verweisen könntutomatischer virtueller Speicher, der die Größe des Heapspeichers dynamisch erweite, das wird toll

Antworten auf die Frage(36)

Ihre Antwort auf die Frage