Speicherfreigabe bei MVC erschwert?!

Reality

Top Contributor
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
 

Reality

Top Contributor
Also das würde mal wieder zeigen, was für ein Müll IBM mit Lotus Notes programmiert hat.
Aber wie kann man das nachprüfen? Gibt es in Java ein Tool, das anzeigt, wieviele Objekte noch im Speicher sind und von welchem Typ?

L. G.
Reality
 

musiKk

Top Contributor
Es gibt z. B. das Programm VisualVM, mit dem man recht komfortabel ins Innenleben einer Java VM schauen kann. Mit der JConsole kann man sich auch einen Heap Dump anlegen und mit jhat wieder anzeigen lassen. Es geht schon einiges, aber die Komplexität des Themas ist auch beachtlich.
 

Sekundentakt

Bekanntes Mitglied
Also das würde mal wieder zeigen, was für ein Müll IBM mit Lotus Notes programmiert hat.
Aber wie kann man das nachprüfen? Gibt es in Java ein Tool, das anzeigt, wieviele Objekte noch im Speicher sind und von welchem Typ?

L. G.
Reality
Ich würde es nicht unbedingt Müll nennen. Müll wäre es, wenn Du den Fehler meldest und man ihn ignoriert. ;)
 

Reality

Top Contributor
Ich würde es nicht unbedingt Müll nennen. Müll wäre es, wenn Du den Fehler meldest und man ihn ignoriert. ;)

OK, das sagt jetzt einer, der sich noch nie intensiv mit Lotus Notes auf Entwicklungsebene befasst hat, richtig? ;)
IBM fixt so einiges nicht, stattdessen geben sie lieber Workarounds bekannt und so summieren sich von Version zu Version immer mehr Fehler. Version 8.5.1 ist schon fast unbenutzbar geworden! Teilweise gehen schon grundlegende Sachen wie das Speichern einer Library schief! Egal, das ist jetzt OT...

Liebe Grüße
Reality
 

Neue Themen


Oben