OutOfMemory geht nicht weg
-
Hallo,
ich mache gerade Belastungstests. Ich erzeuge so viele Agenten in meiner Applikation, bis ein MemoryOverflow eintritt.
Wenn dies gemacht wurde beende ich die Applikation. Wenn ich die Applikation nach einer Weile neustarte (über Eclipse), bekomm ich gleich zu Beginn einen OutOfMemoryException. Erst nach Neustart des Betriebssystem kann ich weiterarbeiten.
Ist der Garbage Collector so langsam mit aufräumen? Kann ich das irgendwie beschleunigen?
gruss
Klaus
-
Bestehen irgendwelche Abhängigkeiten bei deinen Agenten, die evtl.
das Löschen durch den GC verhindern ?
Ansonsten VM neustarten dürfte dir evtl. ein neustart
des Betriebssystems ersparen.
Wird dein Programm korrekt beendet ?
Fängst du die Exception irgendwo ?Etwas Code kann evtl. nicht schaden
Devil
-
cpt.oneeye schrieb:
Wenn dies gemacht wurde beende ich die Applikation.
Das hätte ich gerne genau definiert. Wird der Prozess der VM beendet?
Ist der Garbage Collector so langsam mit aufräumen?
Nein. Viel aufzuräumen bereitet ihm Vergnügen. Ein OutOfMemoryError tritt auch nicht dann auf, wenn er noch nicht aufgeräumt hat, sondern wenn er nicht genug aufräumen konnte. Das heißt, du referenzierst die Objekte irgendwie noch.
-
Mir hat es da wohl was im Eclipse verhunst. Auch wenn ich WindowsXP neustarte, kommt danach wenn ich die Applikation in Eclipse starte zu Beginn die Exception. Über die commandshell kann ich aber die applikation starten. ich werd mal das eclipse projekt neu laden...