Geheugenlekken
Het proces van een geheugenlek vertegenwoordigt een geleidelijke toename van het volume aan werkgeheugen dat een draaiend programma verbruikt. Het is over het algemeen het gevolg van een fout in het programma, hierdoor wordt ongebruikt geheugen niet vrijgegeven.
Geheugenlekken zijn vooral gevaarlijk voor programma's die lange tijd draaien zonder herstart. In dat geval kan zo'n programma na verloop van tijd het volledig beschikbare volume aan werkgeheugen verbruiken, wat leidt tot een noodstop van het programma of, erger nog, tot incorrect functioneren.
Er zijn de volgende manieren om geheugenlekken te voorkomen:
- Het gebruik van garbage collectors, die ongebruikt geheugen vrijmaken, maar tegelijkertijd een deel van de systeembronnen opeisen voor hun werk, wat leidt tot vertragingen of vastlopers.
- Het herstarten van het programma met behulp van een extern programma, waardoor na het beëindigen van het programma al het geheugen weer teruggegeven wordt aan het systeem en de lekken minder omvangrijk worden.
- Het vermijden van dynamische geheugentoewijzing, wat dergelijke fouten uitsluit, maar ook de functionaliteit van programma's beperkt.
- Het gebruik van ownership pointers (eigenaarschap pointers) om de levensduur van de pointer af te stemmen op de levensduur van het object waarnaar het verwijst. Deze methode is echter niet geschikt voor cyclische referenties tussen objecten.
Zie ook
-
de periode runtime,
gedurende welke het programma wordt uitgevoerd -
Brondata,
die de locatie van gegevens vertegenwoordigen -
een geheel van programma's Software,
dat de werking van applicaties verzorgt -
een geheel van programma's Besturingssysteem,
dat het beheer van de computersystemen verzorgt