Andreas Bierhals: Test-Ergebnisse

Beitrag lesen

Moin!

Ich bin ziemlich neugierig und so habe ich meine rekursive Funktion einfach mal 2 Stunden laufen lassen. Siehe da, der Speicherverbrauch von Netscape stieg von gut 8MB auf gut 52 MB (!!) an (pfui Andrea, schlecht geschrieben! ;-)). Daraus ergaebe sich zwanglaeufig demnaechst ein Problem.

Wow... 2 Stunden?! So weit kamen meine Endlosrekursionen nie - die hielten meist nur wenige Sekunden durch <g>. Was war das denn jetzt genau für eine Funktion? Eine, die sich mit setTimeout(...) selbst aufruft - oder war der rekursive Aufruf direkt ‚hardcoded‚ in der Funktion drin? Eigentlich dürfte imho bei setTimeout(...) ja gar kein Stack-Speicher verbraucht werden, weil die Funktion nach der gewissen Zeit vom Event-Handler anstatt von sich selbst neu aufgerufen wird - d.h. beim vorigen Aufruf wurde die Funktion normal beendet. Allerdings kann ich mich auch noch an so einen Tag erinnern, wo ich im Vordergrund eine Mail schrieb, während ich in einem verdeckten Fenster einen tickernden Newsticker vergaß... Plötzlich war die Swap-Datei 90MB groß, und ich dachte, mein Rechner sei von einem Virus befallen...

Nachdenklich stimmt allerdings, dass der Browser den Speicher auch dann nicht mehr freigegeben hat, als wieder von der Seite runter gegangen bin. Das ist unfein :-(

Tja... der gefürchtete "Memory-Leak" ist wohl immer noch einer der am schwersten zu findenden Bugs in großen Programmen (wie denn auch - funktioniert ja erstmal alles).

(Doch, ich hab' auch anderes zu tun ...)

Gut - als nächstes können wir uns dann ja mal den zunehmenden Fragmentierungsgrad einer Festplatte beim wiederholten Installieren und Deinstallieren von IE5 unter die Lupe nehmen ;-))

Viele Grüße

Andreas