Hallo Leute,
ich erhalte gerade eine folgende Exception:
Kurzes Vorwort zum Programm:
Das Programm vergleicht im Grunde genommen zwei Datensätze. Wenn die Datensätze gut zueinander passen rattert das Programm an sich schnell durch. Jetzt habe ich mal das Programm auf Datensätzen getestet die überhaupt nicht zusammenpassen. Das Programm muss dadurch wesentlich mehr Berechnungen durchführen. Am algorithmus lässt sich eigentlich nicht viel Verändern. Also es handelt sich hierbei ca. um initial 225 000 000 Vergleiche und von diesen werden dann sozusagen ca. 5 000 000 erkannt und zu diesen 5 000 000 erkannten Vergleichen dann jeweils ca. 10 Gewichte berechnet.
Es werden auch viele Listen angelegt, die nun eben bis zu 5 000 000 Einträge gleichzeitig speichern.
Also es gibt wie man sieht einiges zu berechnen.
Nun die Fragen:
Gibt es nun Möglichkeiten diesen Fehler zu vermeiden? Die Laufzeit wäre ja grundsätzlich egal, Hauptsache das Programm bricht nicht einfach ab. Würde es etwas bringen einen besseren Rechner zu verwenden?( Ich hätte die Möglichkeit das Ganze auf einem extrem Rechenstarken Server durchführen). Oder muss man Java erlauben mehr Resourcen anzuzapfen? Falls ja, weis jemand wo ich hierzu infos finde?
ich erhalte gerade eine folgende Exception:
Java:
in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Unknown Source)
at java.util.ArrayList.ensureCapacity(Unknown Source)
at java.util.ArrayList.add(Unknown Source)
Kurzes Vorwort zum Programm:
Das Programm vergleicht im Grunde genommen zwei Datensätze. Wenn die Datensätze gut zueinander passen rattert das Programm an sich schnell durch. Jetzt habe ich mal das Programm auf Datensätzen getestet die überhaupt nicht zusammenpassen. Das Programm muss dadurch wesentlich mehr Berechnungen durchführen. Am algorithmus lässt sich eigentlich nicht viel Verändern. Also es handelt sich hierbei ca. um initial 225 000 000 Vergleiche und von diesen werden dann sozusagen ca. 5 000 000 erkannt und zu diesen 5 000 000 erkannten Vergleichen dann jeweils ca. 10 Gewichte berechnet.
Es werden auch viele Listen angelegt, die nun eben bis zu 5 000 000 Einträge gleichzeitig speichern.
Also es gibt wie man sieht einiges zu berechnen.
Nun die Fragen:
Gibt es nun Möglichkeiten diesen Fehler zu vermeiden? Die Laufzeit wäre ja grundsätzlich egal, Hauptsache das Programm bricht nicht einfach ab. Würde es etwas bringen einen besseren Rechner zu verwenden?( Ich hätte die Möglichkeit das Ganze auf einem extrem Rechenstarken Server durchführen). Oder muss man Java erlauben mehr Resourcen anzuzapfen? Falls ja, weis jemand wo ich hierzu infos finde?