Mark – Compact GC & Performancemessungen Bernhard Prügl, 0156212.

Slides:



Advertisements
Ähnliche Präsentationen
ONTABLES ONTABLES Einführung.
Advertisements

Routing – Routing Protokolle
DGC 1. 2 Motivation x new(x) delete(x) Speicher DGC 3 Inhalt Einführung GC / DGC Der ideale DGC Algorithmen Zusammenfassung.
Rekursion: Rekurrenz: Algorithmen rufen sich selbst (rekursiv) auf.
Falls Algorithmen sich selbst rekursiv aufrufen, so kann ihr Laufzeitverhalten bzw. ihr Speicherplatzbedarf in der Regel durch eine Rekursionsformel (recurrence,
1.1.2: Frequent Pattern Growth von Nicolai Voget
PlanetenWachHundNetz Instrumenting Infrastructure for PlanetLab.
Suche in Texten (Stringsuche )
Übung 6.6Schranken 1.Angenommen, Ihr Algorithmus habe einen Aufwand von g(n) = 5n 3 + n für alle n a)Geben sie eine obere Schranke O(g(n)) an. b)Beweisen.
der Universität Oldenburg
Enno Rehling und Roger Butenuth, Uni-GH Paderborn: Arminius: Software für Linux-basierte SCI-Cluster Arminius: Software für Linux-basierte SCI-Cluster.
SAP R/3 - Speichermanagement
Sortierverfahren Richard Göbel.
FH-Hof Deadlocks Richard Göbel. FH-Hof Deadlock - Definition Menge von Prozessen ist an einem Deadlock beteiligt: wenn jeder Prozess in dieser Menge auf.
Sortierverfahren Richard Göbel.
Garbage Collection Maik Theisen Betreuer: Guido Tack
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 – Sortieren vorsortierter Daten) Prof. Th. Ottmann.
Sortieren vorsortierter Daten
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen 09 - Weitere Sortierverfahren Heapsort-Nachtrag Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (15 Hashverfahren: Verkettung der Überläufer) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 16 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (05 – Elementare Datenstrukturen) Prof. Th. Ottmann.
Aufbau und Funktionsweise von Prozessoren
Vorbereitung: struct SX { int x; struct SX *p; } *px, *ph; px: Zeiger auf Listen- anfang ph: Hilfszeiger px = NULL; px zeigt auf leere Liste px.
Verkettete Liste Visualisierung. New-Operator Mit dem New-Operator kann zur Laufzeit (dynamisch) Speicherplatz reserviert und angelegt werden Vorteil:
Externe Datenstruktur lineare Liste
Vortrag III Hier in der Vorlesungszeit! Anwesenheitspflicht Jede Gruppe hat 6 Minuten! Stellt eure GUI vor –was ihr besonderes gemacht habt –Spektakuläre.
Briefkopfbogen anpassen
Wie erstelle ich einen Spielplan von unserer Homepage? Der Schlüssel liegt hinter dem Button Spiele, Ergebnisse Hier alle Spiele wählen. Hier das gewünschte.
HTML (I) am Cern in Genf von Sir Tim Berners-Lee entwickelt
2. Die rekursive Datenstruktur Baum 2
Sortieralgorithmen Sortieren von Arrays.
Effiziente Algorithmen
Mark & Sweep Seminar Softwareentwicklung: Garbage Collection Eva Schartner.
Java Garbage Collection Angelika Kusel, Überblick Was ist Garbage Collection? Vor- und Nachteile von GC GC-Algorithmen/Verfahren Java Garbage.
Technische Hilfe Datenauswertung
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Efficient Alias Set Analysis Using SSA Form Proseminar Programmanalyse WS 11/12 André Hunke.
Vorgehensmodell mit Scrum-Elementen
Algorithmus von Dijkstra. 0 Algorithmus von Dijkstra s Priority Queue PQ: Knoten, Priorität Weglänge Kandidatenmenge.
Einführung in die Programmiersprache C 4
Die folgenden Seiten enthalten einige Vorschläge wie man die gegenwärtige Position im Vortrag markieren kann. Auf dem Master wird die Leiste mit den Punkten.
Garbage Collection unter .NET
Replikation und Synchronisation
Kessamo · Anleitung · Lernen Lernkiste Kessamo
Hilfe Dokumente.
Störmeldemanagement Übersicht Erfassen der Störmeldung Visualisierung
Thomas Negeli | Reference Counting I Folie 1 / 20 Seminar Garbage Collection | WS2005 Reference Counting I Negeli Thomas.
Die Idee hinter Copying Garbage Collection (1) Aufteilung des Heaps in zwei Teile: To-Space und From-Space Nutzung eines Teiles durch das Programm Ist.
Externspeicher- Algorithmen:Teil 2
Informatik Datenstruktur Graph 3.3 Durchlaufen von Graphen
Betriebssysteme Übung Tutorium „TLB & Virtual Memory“
Das Traveling Salesman Problem (TSP)
Änderungen neues Netzwerk. Änderungen Alle alten s sind im öffentlichen Ordner „info“ Alle Termine sind im öffentlichen Ordner „Allgemeine Termine“
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
Preisfindung Verwalten von Preislisten
GAME PROGRAMMING PATTERNS – FLYWEIGHT & OBSERVER Robert Nystrom Softwaretechnologie II Teil 2 Anike Schulz.
© 2016 TravelTainment Einführung in die Garbage Collection Seminarvortrag Lars Frauenrath 1.
Strukturen (Eigenschaften) Strukturen dienen zur Zusammenfassung mehrerer Komponenten verschiedener Typen zu einer Einheit, die dann mit gemeinsamen Namen.
Dr. Wolfram Amme, Automatische Speicherverwaltung, Informatik II, FSU Jena, SS Automatische Speicherverwaltung.
Arbeiten mit dem Notenmodul
 Präsentation transkript:

Mark – Compact GC & Performancemessungen Bernhard Prügl,

2/18 Inhalt Motivation für Mark – Compact Algorithmenüberblick 4 Algorithmen im Detail Zusammenfassung Algorithmen Performance der verschieden Garbage Collection Strategien

3/18 Motivation für Mark – Compact Lange Programmlaufzeit führt zu Fragmentierung, welche folgende Probleme verursacht: Aufwand zum Anlegen neuer Objekte steigt Speicher wird nicht optimal ausgenützt Nacheinander angelegte Objekte oft nicht nebeneinander Mark-Compact reduziert diese Probleme

4/18 Algorithmenüberblick Grundsätzliche 3 Phasen: 1. Markieren der lebendigen Knoten. 2. Kompaktierung des Speichers (Knoten verschieben). 3. Aktualisieren der Zeiger auf verschobene Knoten. Kriterien anhand derer eine Einteilung möglich ist: Einteilung nach Art wie verschobene Knoten angeordnet werden. 2 oder 3 Durchläufe zum Kompaktieren. Einteilung nach zusätzlich benötigten Speicher Weitere Anforderungen, z.B. nur Knoten gleicher Größe

5/18 Zwei Finger Algorithmus 2 Zeiger "free" sucht freien Speicher "live" sucht lebendige Knoten "live" wird auf "free" verschoben Neue Adresse wird in "live" hinterlassen

6/18 Lisp 2 Algorithmus (1/2) Adressenweiterleitend Zusätztliche Speicherzelle im Header jedes Knoten "free" läuft von Anfang bis Ende Neue Adresse wird in Header jedes Knoten geschrieben

7/18 Lisp 2 Algorithmus (2/2) 2.Durchlauf: interne Zeiger aktualisieren anhand der Adresseinträge in den Headern 3.Durchlauf: Knoten tatsächlich verschieben

8/18 Haddon-Waite Algorithmus (1/2) Tabellenbasiert Zeiger durchläuft Speicher von Anfang bis Ende Knoten werden sofort verschoben Information über Verschiebung in Tabelle eintragen

9/18 Haddon-Waite Algorithmus (2/2) Tabelle am Ende des bearbeiteten Bereichs wird bei Bedarf verschoben Am Ende muss Tabelle sortiert werden 2. Durchlauf: interne Zeiger mit Hilfe der Tabelle aktualisieren

10/18 Threading Zeiger werden verbogen durch tauschen der Inhalte P enthält eine Liste mit allen Zeigern die auf P zeigen Info im letzten Knoten

11/18 Jonkers Algorithmus (1/2) Threaded Zuerst vorwärtszeigende Zeiger threaden Wird P erreicht werden alle schon gethreadeden Knoten aktualisiert

12/18 Jonkers Algorithmus (2/2) Vorwärtszeigende Zeiger zeigen jetzt auf zukünftiges P Rückwärtszeigende Zeiger werden gethreaded 2. Durchlauf: Knoten verschieben Alle rückwärtszeigenden Zeiger aktualisieren

13/18 Überblick Geeigneter Algorithmus muss entsprechend Vorgaben gewählt werden.

14/18 Performance Performancemessungen in GC Bereich Messungen auf AMD Athlon XP 2600+, ausgeführt von Stephen M Blackburn, Graphiken: Laufzeitmessungen des gesamten Programms und der Garbage Collection allein Cache Misses bei verschiedenen GC Strategien Performance in Generationensystemen

15/18 Laufzeitmessungen X-Achse: Heap GrößeY-Achse: Zeit

16/18 Cache Misses X-Achse: Heap GrößeY-Achse: Zeit (a) / Cache Misses (b - d)

17/18 Performance in Generationensystemen X-Achse: Speichergröße für neue Objekte Y-Achse: Zeit (a-c) / Cache Misses (d-f)

18/18 Danke für eure Aufmerksamkeit