De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

De rommel van de programmeur Pieter van Ede. Handmatig geheugenbeheer Programmeur gooit zelf objecten weg Veel fouten mee gemaakt Geheugenlekken ‘Dangling.

Verwante presentaties


Presentatie over: "De rommel van de programmeur Pieter van Ede. Handmatig geheugenbeheer Programmeur gooit zelf objecten weg Veel fouten mee gemaakt Geheugenlekken ‘Dangling."— Transcript van de presentatie:

1 De rommel van de programmeur Pieter van Ede

2 Handmatig geheugenbeheer Programmeur gooit zelf objecten weg Veel fouten mee gemaakt Geheugenlekken ‘Dangling pointers’

3 Geheugenlek Object C Object AObject B

4 ‘Dangling pointers’ Object C Object AObject B

5 Ofwel garbage collection Uitgevonden door John McCarthy in 1959

6 Reference counting Ieder object krijgt teller Object wordt verwijderd als teller 0 wordt. Object C Object AObject B 11 210

7 Perfecte oplossing? Voordelen Nadelen Makkelijk te implementeren Objecten verwijderd zodra niet meer nodig Detectie dode objecten tegelijk met uitvoer programma Objecten worden opgeblazen Veel administratie Problemen met cyclische verwijzingen

8 Cyclische verwijzingen Object C Object A Object B 1 2 1 1

9 Tracing garbage collection Geen administratie per object Lijst van alle objecten Eens in zoveel tijd garbage collecten

10 Tracing garbage collection (2) Object B Object A Object C Object D Object E Object A Object B Object C Object D Object E

11 Nu wel perfecte oplossing? Voordelen Nadelen Weinig administratie Alle onbereikbare objecten worden verwijderd Programma moet stoppen tijdens garbage collection Hele geheugen moet (meerdere malen) worden doorzocht per scan

12 Drie-kleuren markering Om deze nadelen op te lossen, ander algoritme bedacht Alle objecten in drie disjuncte verzamelingen verdeeld wit – veroordeeld zwart – geen verwijzingen naar wit grijs – overig Belangrijke invariant: geen object in zwart verwijst naar een object in wit

13 Drie-kleuren markering (2) Object AObject BObject C Object D

14 Nog perfectere oplossing? Voordeel: Garbage collection kan ‘on the fly’ door set- administratie bij te houden

15

16 Moving vs non-moving Non-moving Moving Object dat weg kan gewoon weggooien Alle bereikbare objecten naar ander deel van het geheugen kopiëren Alle verwijzingen updaten

17 Moving vs non-moving (2) Moving Non-moving Na kopiëren objecten hele oude geheugen snel vrij te geven Steeds veel ruimte om nieuwe objecten te plaatsen Bij goede verplaatsing objecten, veelgebruikte objecten dicht bij elkaar in geheugen, beter voor cache Ieder onbereikbaar object afgaan en markeren als bruikbaar geheugen Geheugen kan sterk gefragmenteerd raken


Download ppt "De rommel van de programmeur Pieter van Ede. Handmatig geheugenbeheer Programmeur gooit zelf objecten weg Veel fouten mee gemaakt Geheugenlekken ‘Dangling."

Verwante presentaties


Ads door Google