Hi! Am Fre, 2002-07-19 um 12.19 schrieb Eilert Brinkmann:
Das ist kein Widerspruch. Der von einem Prozeß belegte Speicher wird bei Prozeßende vom System wieder freigegeben, auch wenn er von dem Programm selbst vergessen wurde. Insofern beschränkt sich der Effekt nur auf die Laufzeit des Prozesses (bzw. etwas darüber hinaus, bis das System wieder aufgeräumt hat).
Oh ja, aber auf die garbage collection würde ich mich nicht verlassen. Gerade wenn die Software keine durchgängige Ausnahmebehandlung hat ist das kritisch. Dies trifft oft Listen-oder Baumstrukturen, die nicht mit STL-Containern angelegt wurden, sondern quasi per Hand (mal als Beispiel). Ich weiss nicht, ob es an meinem Kernel liegt (2.4.16), aber ich habe keine Probleme, meinen verfügbaren Hauptspeicher MB-weise mit selbstgeschriebener Software zu verkleinern. Um das ganze richtig sauber zu betreiben, sollte man eigentlich in einem catch-Block (Existenz vorausgesetzt) nicht nur die exception weiter werfen, sondern auch noch seine Ressourcen freigeben, sofern notwendig. Interessante und sehr einfache Beispiele hierzu finden sich z.B. im Stroustrup. CU Martin