Hi,
habe mir mal den Kurz-Artikel zu MVC quer gelesen und musste feststellen, dass die Klasse "WindViewer" eine Referenz von "WindController" hat und "WindController" wiederum eine Referenz von "WindViewer" - sie verweisen also gegenseitig aufeinander. So einen ähnlichen Fall hatten wir in unserer Firma auch und das hat bei uns bei großen Datenmengen zu Speicherlecks geführt, d. h., dass der Server irgendwann abgeraucht ist, weil der RAM-Speicher vollgelaufen ist, da der Garbage Collector von LotusScript dachte, dass das jeweilige Objekt noch benutzt wird, da auf beiden Seiten noch eine gültige Referenz besteht. Lösung war, dass man bei einer Klasse eben den Speicher manuell freigibt. In Java müsste das mit obj = null gehen.
Frage: Ist der Garbage Collector von Java so intelligent, dass er solche Tücken erkennt? Der Garbage Collector von LotusScript hat in einem solchen Fall nämlich versagt.
Liebe Grüße
Reality
habe mir mal den Kurz-Artikel zu MVC quer gelesen und musste feststellen, dass die Klasse "WindViewer" eine Referenz von "WindController" hat und "WindController" wiederum eine Referenz von "WindViewer" - sie verweisen also gegenseitig aufeinander. So einen ähnlichen Fall hatten wir in unserer Firma auch und das hat bei uns bei großen Datenmengen zu Speicherlecks geführt, d. h., dass der Server irgendwann abgeraucht ist, weil der RAM-Speicher vollgelaufen ist, da der Garbage Collector von LotusScript dachte, dass das jeweilige Objekt noch benutzt wird, da auf beiden Seiten noch eine gültige Referenz besteht. Lösung war, dass man bei einer Klasse eben den Speicher manuell freigibt. In Java müsste das mit obj = null gehen.
Frage: Ist der Garbage Collector von Java so intelligent, dass er solche Tücken erkennt? Der Garbage Collector von LotusScript hat in einem solchen Fall nämlich versagt.
Liebe Grüße
Reality