Speicherlecks
Der Prozess des Speicherlecks stellt eine schrittweise Zunahme des Volumens des Arbeitsspeichers dar, den ein gestartetes Programm verbraucht. In der Regel ist dies die Folge eines Programmierfehlers, der dazu führt, dass nicht genutzter Speicher nicht freigegeben wird.
Besonders gefährlich sind Speicherlecks bei Programmen, die lange ohne Neustart laufen. In diesem Fall kann ein solches Programm nach einiger Zeit den gesamten verfügbaren Arbeitsspeicher verbrauchen, was zu einem Absturz des Programms oder, noch schlimmer, zu fehlerhaftem Betrieb führt.
Es gibt folgende Möglichkeiten, Speicherlecks zu verhindern:
- Einsatz von Garbage Collectors, die nicht genutzten Speicher freigeben, aber gleichzeitig einen Teil der Systemressourcen für ihre eigene Arbeit beanspruchen, was zu Verlangsamungen oder Freezes des Systems führt.
- Neustart des Programms durch ein externes Programm, wodurch nach Beendigung des Programms der gesamte Speicher wieder dem System zurückgegeben wird und die Lecks nicht so umfangreich sind.
- Verzicht auf dynamische Speicherverwaltung, was wiederum derartige Fehler ausschließt, aber auch die Funktionalität von Programmen einschränkt.
- Verwendung von Owned Pointern (besitzenden Zeigern), um die Lebensdauer des Zeigers und die Lebensdauer des Objekts, auf das er verweist, abzustimmen. Allerdings ist diese Methode nicht geeignet für zyklische Referenzen zwischen Objekten.
Siehe auch
-
die Laufzeit,
in der das Programm ausgeführt wird -
Ausgangsdaten,
die den Standort der Daten darstellen -
die Gesamtheit der Programme Software,
die das Funktionieren der Anwendungen sicherstellt -
die Gesamtheit der Programme Betriebssystem,
die die Verwaltung der Computersysteme sicherstellt