So!
Nunendlich hat es Java geschafft das ich es nicht mehr mag :bae:
Es geht darum das ich zB in ein Programm mit einer GUI einsteige (von einem Java Menü) und dort nach jedem schließen immer mehr und mehr Speicher verbraucht! Nur irgendwann ist halt einmal ENDE!
Bei der Standalone APP wäre es mir ja auch egal, aber das ganze läuft als Web Applet und da habe ich max. 95 MB (außer ich ändere auf der Maschine was, aber das will ich nicht).
Das lustige ist, das jeder Dialog von meinem xyzDialog abgeleitet ist und die Methode onClose geht her und setzt alle Felder auf null und ruft nach dem dispose nach System.gc() auf!
Lasse ich mir den Speicherverbrauch vorher ausgeben, so sehe ich sehr gut einen Unterschied (also es wird was freigegeben). Nur ist halt nicht alles freigegeben!!!
Tjo, mein Problem ist halt, das pro Unterprogrammaufruf 2MB nicht mehr freigegeben werden! So, nun die Frage warum ist das so?! Ich dachte der GC wäre so klug und gibt frei was man nicht mehr braucht (jeder Dialog wird mit setVisible(false) und mit dispose() geschlossen).
Kann man irgendwie, irgendwo sehen welche Objekte da noch im Speicher rumliegen und warum die nicht freigegeben werden, wenn eigentlich nix mehr vom Dialog zu sehen ist (es wird nix von den Dialogen zurück zum Menü gegeben!!)
mfg
PS.: Ich weiß es ist schwer ins blaue zu raten, aber vielleicht weiß ja wer was oder hatte schon mal so ein Problem!
Nunendlich hat es Java geschafft das ich es nicht mehr mag :bae:
Es geht darum das ich zB in ein Programm mit einer GUI einsteige (von einem Java Menü) und dort nach jedem schließen immer mehr und mehr Speicher verbraucht! Nur irgendwann ist halt einmal ENDE!
Bei der Standalone APP wäre es mir ja auch egal, aber das ganze läuft als Web Applet und da habe ich max. 95 MB (außer ich ändere auf der Maschine was, aber das will ich nicht).
Das lustige ist, das jeder Dialog von meinem xyzDialog abgeleitet ist und die Methode onClose geht her und setzt alle Felder auf null und ruft nach dem dispose nach System.gc() auf!
Lasse ich mir den Speicherverbrauch vorher ausgeben, so sehe ich sehr gut einen Unterschied (also es wird was freigegeben). Nur ist halt nicht alles freigegeben!!!
Tjo, mein Problem ist halt, das pro Unterprogrammaufruf 2MB nicht mehr freigegeben werden! So, nun die Frage warum ist das so?! Ich dachte der GC wäre so klug und gibt frei was man nicht mehr braucht (jeder Dialog wird mit setVisible(false) und mit dispose() geschlossen).
Kann man irgendwie, irgendwo sehen welche Objekte da noch im Speicher rumliegen und warum die nicht freigegeben werden, wenn eigentlich nix mehr vom Dialog zu sehen ist (es wird nix von den Dialogen zurück zum Menü gegeben!!)
mfg
PS.: Ich weiß es ist schwer ins blaue zu raten, aber vielleicht weiß ja wer was oder hatte schon mal so ein Problem!