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

Slides:



Advertisements
Verwante presentaties
Ik doe mijn spreekbeurt over de orka
Advertisements

Spoedcursus Fotografie
PSD Basisstructuren programmeren.
SSD gebruik in “WMC“ Nico Oosterwijk.
5 stedelijke problemen – 5 stedelijke oplossingen
Spreekbeurt van Romy Vonk Gr 6M
Dit is een voorstelling hoe men de bomen van de baan Hoogstraten Sint Lenaerts verwijderd heeft.Dit is moeten gebeuren voor de verbreding en aanleg van.
Opdracht 11  Ik heb de communicatiemiddelen DVD en VHS genomen.
© Flipside On-Line Reserveringssysteem Reserveren via uw eigen site, snel en eenvoudig.
BESTURINGS SYSTEMEN Vincent Naessens.
The Next Generation Webpresentatietechniek nieuwe stijl
Opdracht 11 Communicatiemiddelen Communicatiemiddelen © FjH.
Advanced Algorithms Groep: EII7AAb
‘Inleiding programmeren in Java’ SWI cursus: ‘Inleiding programmeren in Java’ 4e college Woe 19 januari 2000 drs. F. de Vries.
Zie jij ook grijze stippen tussen de vierkantjes?
Cobian Backup 8 Welkom op de Cobian presentatie.
Gebalanceerde bomen Zoekbomen: weglaten in rood-zwart-bomen.
Geheugenbeheer ICT Infrastructuren hoofdstukken 7 en 8.1.
Effiecient Mining of Spatiotemporal Patterns GDM 2003 Dènis de Keijzer.
Als God de mens had geschapen om computers te gebruiken, had hij ons zestien vingers gegeven.
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 3.
Contracten voor Sandboxing gebaseerd op Stack Inspection Jan Smans, Bart Jacobs en Frank Piessens.
PO informatica SSD en Monitor
Seminarie programmeren Het geheugen. Menu Memory 1.About 2.Mem Mgmt/del 3.Clear entries 4.clrAllLists 5.Archive 6.Unarchive 7.Reset 8.group →Sec mem.
1/1/ / faculty of Computer Science eindhoven university of technology 5B040:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 9(1): Virtual.
Stefan Cornelissen & Eva de Leeuw
Wat is de zin van het leven?
Informatica Netwerken (1). Informatica Netwerken Verschillende afmetingen –LAN (Local Area Network) –MAN (Metropolitan Area Network) –WAN (Wide Area Network)
TOEZICHTHOUDERS EN HANDHAVERS IN DE (SEMI) PUBLIEKE RUIMTE
The Six Thinking Hats WORKSHOP. DIVERGEREN Dit is het genereren van zoveel mogelijk ideeën, feiten, problemen, kenmerken, gevolgen, oorzaken, oplossingen.
Invoersessie 1 Na de CRF. Mogelijke werkwijze 1. Nazicht studentensets 1. Nieuwe voor nieuwe studieprogramma's. 2. Aangepaste studieprogramma's SS-aanpassen.
Les 5: Geheugenbeheer “If we wish to count lines of code, we should not regard them as ‘lines produced’ but as ‘lines spent.’” – Edsger Dijkstra.
Code compressie in Embedded Systems Onno Kievit ET4074 Kwantitatieve aspecten van computer architectuur.
Allard Kamphuisen Hado van Hasselt Wilco Broeders
Programmeren.
Tumblr. Ik heb dit onderwerp gekozen, omdat ik Tumblr een leuk socialmedia vind.
Rekenen met getallen : = x Delen door een breuk is hetzelfde als vermenigvuldigen met het omgekeerde van die breuk. Maak je zelf zo min mogelijk.
Methoden & Technieken van Onderzoek
Variabelen. Wat zijn variabelen? Klassiek: een variabele houdt informatie bij. Klassiek: een variabele houdt informatie bij. bvb: int getal; getal = 5;
Samenwerking SoRa & AMW Growing together apart 1.
Gebr. Bac Anti maaislab Gebr. Bac Oud-schaik 33a 4141 JA Leerdam
Minimum Opspannende Bomen Algoritmiek. 2 Inhoud Het minimum opspannende bomen probleem Een principe om een minimum opspannende boom te laten groeien Twee.
Terugkoppeling Oudercafé HUISWERK & MEERTALIGHEID.
Datastructuren voor grafen Algoritmiek. 2 Grafen Model van o.a.: –Wegennetwerk –Elektrische schakeling –Structuur van een programma –Computernetwerk –…
Memc.  Je kent het antwoord terwijl je je programma maakt en dit is niet veel: voorzie X objecten.  Je kent het antwoord terwijl je je programma maakt.
Wereld Choco-lat Economie. Wereld Choco-lat Benodigheden  1 spelbord  5 sets van 11 fabriekskaarten  5 sets van 3 hoofdzetelkaarten  45 spelkaarten.
Programmeren. Wat is programmeren? Het schrijven van opdrachten voor de processor De processor “spreekt” machinetaal:
Bloempotten en vazen Verschillende soorten & maten deel 2.
Proportionele Besturing
BEGINNER EV3 PROGRAMMEER Les
Stiftgedichten.
Objecten oppakken en verplaatsen
Datastructuren voor graafrepresentatie
Mediation in faillissementen
Minimum Opspannende Bomen
Objectgeoriënteerd Programmeren
Fleur, Hugo, Kamil en Minke
Gameprogrammeren: Objecten en geheugen
Object georiënteerd programmeren
Mediation in faillissementen
Oud klantenbestand Weinig nieuwe klanten
Kikker kleuren
De Radboud Kids: Meet the professor quiz
Tellen met kaarten.
Tellen met kaarten.
Tussenpresentatie project muizenval
Software Development fundamentals
Software Development fundamentals
Software Development fundamentals
Terug Wat heb je nodig? Tijdschriften, schaar, lijm, A4 of A3-tje. Wat moet je doen? Je gaat een collage maken. Je gaat foto’s van oude gebouwen (ouder.
Transcript van de presentatie:

De rommel van de programmeur Pieter van Ede

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

Geheugenlek Object C Object AObject B

‘Dangling pointers’ Object C Object AObject B

Ofwel garbage collection Uitgevonden door John McCarthy in 1959

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

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

Cyclische verwijzingen Object C Object A Object B

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

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

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

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

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

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

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

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