Hi,
Wie der Titel schon sagt, bekomme ich beim ausführen meines Programms einen 'OutOfMemoryError', der für mich aber nicht im Ansatz nachvollziehbar ist.
Hab natürlich zuerst hier im Forum nach schon vorhandenen Threads gesucht und es gibt allein 32, die dieselbe ErrorMsg im Titel haben ^^ allerdings nur wenige, die wie ich keine rießen Datei einlesen, eine Datenbank füllen oder streams/writer/buffer am laufen haben.
Ich weiß nicht, wie ich bei diesem Problem am sinnvollsten nach Hilfe fragen kann, da ich selbst zwar relativ genau weiß, in welchem Teilbereich meines Programms der Fehler auftritt, ich aber nicht denke, dass der codeschnipsel euch weiterhilft (ist ein eher ziemlich banaler
)
Eine Methode folgender Struktur sorgt für die ErrorMsg:
- Die ErrorMsg gibt jedes mal Zeilen wie hier 6 oder 8 an
- Die Schleife läuft nicht auffallend oft durch und die ArrayList 'd' wird nicht zu groß (im Rahmen von 100 Elementen)
- Die erzeugte ArrayList 'd' wird nur in einer wenige Zeilen langen Bedingung verwendet (ohne Schleifen usw.)
- Ich bin mir ziemlich sicher, dass der Fehler in genau diesem Bereich liegt (kommentiere ich Zeilen wie hier '10' aus, wird das Programm nicht durch den Fehler unterbrochen
Da es in anderen Threads empfohlen wurde, hab ich mein Projekt durch den Netbeans-Profiler laufen lassen.
Leider durchschaue ich das tool noch nicht so ganz, aber über 90% der vorhandenen Objekte nach dem Abbruch des Programms waren double-Arrays, die ca. 80% des genötigten Speicher belegten xD
Bei den vergleichbaren Threads waren scheinbar Referenzen das Problem, die nicht mehr freigegeben wurden. Ich hab aber wie ganz oben schon geschrieben nicht wirklich was im Programm, dass man wieder 'releasen' müsste.
Ich hab dem Projekt zum Test schon durch '-Xms1024m' usw. mehr Speicher zugeschrieben, was die ErrorMsg verzögert, aber das Problem natürlich nicht behebt
Durch was kann so ein Fehler noch auftreten und wie finde ich im Netbeans Profiler den genauen Ursprung des Problems?
Hab ich im code ein grundlegenden Fehler, der das Problem auslöst?
Ich hoffe mir kann jemand weiterhelfen,
Carlo
Wie der Titel schon sagt, bekomme ich beim ausführen meines Programms einen 'OutOfMemoryError', der für mich aber nicht im Ansatz nachvollziehbar ist.
Hab natürlich zuerst hier im Forum nach schon vorhandenen Threads gesucht und es gibt allein 32, die dieselbe ErrorMsg im Titel haben ^^ allerdings nur wenige, die wie ich keine rießen Datei einlesen, eine Datenbank füllen oder streams/writer/buffer am laufen haben.
Ich weiß nicht, wie ich bei diesem Problem am sinnvollsten nach Hilfe fragen kann, da ich selbst zwar relativ genau weiß, in welchem Teilbereich meines Programms der Fehler auftritt, ich aber nicht denke, dass der codeschnipsel euch weiterhilft (ist ein eher ziemlich banaler
Eine Methode folgender Struktur sorgt für die ErrorMsg:
Java:
public static ArrayList getActions(KlasseA a, KlasseA b, int c) {
ArrayList d = new ArrayList();
for (int e = 0; e < f; e++) {
double[] g = new double[]{};
if (h) {
g = new double[]{i, j};
} else if (k) {
g = new double[]{l, m};
}
d.add(curAction);
}
return d;
}
- Die Schleife läuft nicht auffallend oft durch und die ArrayList 'd' wird nicht zu groß (im Rahmen von 100 Elementen)
- Die erzeugte ArrayList 'd' wird nur in einer wenige Zeilen langen Bedingung verwendet (ohne Schleifen usw.)
- Ich bin mir ziemlich sicher, dass der Fehler in genau diesem Bereich liegt (kommentiere ich Zeilen wie hier '10' aus, wird das Programm nicht durch den Fehler unterbrochen
Da es in anderen Threads empfohlen wurde, hab ich mein Projekt durch den Netbeans-Profiler laufen lassen.
Leider durchschaue ich das tool noch nicht so ganz, aber über 90% der vorhandenen Objekte nach dem Abbruch des Programms waren double-Arrays, die ca. 80% des genötigten Speicher belegten xD
Bei den vergleichbaren Threads waren scheinbar Referenzen das Problem, die nicht mehr freigegeben wurden. Ich hab aber wie ganz oben schon geschrieben nicht wirklich was im Programm, dass man wieder 'releasen' müsste.
Ich hab dem Projekt zum Test schon durch '-Xms1024m' usw. mehr Speicher zugeschrieben, was die ErrorMsg verzögert, aber das Problem natürlich nicht behebt
Durch was kann so ein Fehler noch auftreten und wie finde ich im Netbeans Profiler den genauen Ursprung des Problems?
Hab ich im code ein grundlegenden Fehler, der das Problem auslöst?
Ich hoffe mir kann jemand weiterhelfen,
Carlo