hi,
Ich habe ein Programm geschrieben was mir verschiedene Informationen von einem Server einholt und in eine Arraylist Speichert, bzw diese Informationen erst in der dafür vorgesehenen Klasse ablegt und diese dann in der ArrayList ablegt.
Das funktioniert auch alles wunderbar aber nach einer Weile wird der Ram voll und der Programm bricht mit o.g. Fehlermeldung ab. Ich kann zwar meinem Programm mehr Speicher zuweisen und dadurch läuft es Länger aber es würde mein problem nicht wirklich lösen. Das Programm führt Timergesteuert alle x Sec eine Abfrage aus. Kann ich irgendwie die Arraylisten bei jedem Durchgang löschen lassen so das der Speicher wieder freigegeben wird oder Anderweitig den Speicher Freigeben? Hab es einmal mit einer WeakReference probiert aber das hat mein Problem auch nicht lösen können. So wie ich die Verstanden habe wird das Objekt nach einer gewissen zeit gelöscht egal ob noch eine Reference darauf besteht.
So habe ich die WeakReference aufgebaut. Ich bekomme keinerlei fehler aber der Speicher wird auch nicht freigegeben.
Der Aufbau der Arraylisten ist folgender:
ServerArray beinhaltet für X Server je eine playerArraylist die wiederum für jeden player eine Instanz der klasse User beinhaltet. Die Klasse User besteht nur aus getter und setter methoden um die Informationen zu halten.
Falls es hierfür eine Bessere lösung gibt um die Informationen vorzuhalten bin ich für alle Vorschläge offen.
mfg BB
Ich habe ein Programm geschrieben was mir verschiedene Informationen von einem Server einholt und in eine Arraylist Speichert, bzw diese Informationen erst in der dafür vorgesehenen Klasse ablegt und diese dann in der ArrayList ablegt.
Das funktioniert auch alles wunderbar aber nach einer Weile wird der Ram voll und der Programm bricht mit o.g. Fehlermeldung ab. Ich kann zwar meinem Programm mehr Speicher zuweisen und dadurch läuft es Länger aber es würde mein problem nicht wirklich lösen. Das Programm führt Timergesteuert alle x Sec eine Abfrage aus. Kann ich irgendwie die Arraylisten bei jedem Durchgang löschen lassen so das der Speicher wieder freigegeben wird oder Anderweitig den Speicher Freigeben? Hab es einmal mit einer WeakReference probiert aber das hat mein Problem auch nicht lösen können. So wie ich die Verstanden habe wird das Objekt nach einer gewissen zeit gelöscht egal ob noch eine Reference darauf besteht.
Code:
ServerArray.add(i, new WeakReference(gs));
servplayArray.add(i,new WeakReference(playerdummyArray));
Der Aufbau der Arraylisten ist folgender:
ServerArray beinhaltet für X Server je eine playerArraylist die wiederum für jeden player eine Instanz der klasse User beinhaltet. Die Klasse User besteht nur aus getter und setter methoden um die Informationen zu halten.
Falls es hierfür eine Bessere lösung gibt um die Informationen vorzuhalten bin ich für alle Vorschläge offen.
mfg BB