Mark%20 - PowerPoint PPT Presentation

About This Presentation
Title:

Mark%20

Description:

Mark Compact GC & Performancemessungen Bernhard Pr gl, 0156212 Inhalt Motivation f r Mark Compact Algorithmen berblick 4 Algorithmen im Detail ... – PowerPoint PPT presentation

Number of Views:90
Avg rating:3.0/5.0
Slides: 19
Provided by: acat150
Category:
Tags: lisp | mark

less

Transcript and Presenter's Notes

Title: Mark%20


1
Mark Compact GC Performancemessungen
  • Bernhard Prügl, 0156212

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

3
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
Algorithmenüberblick
  • Grundsätzliche 3 Phasen
  • Markieren der lebendigen Knoten.
  • Kompaktierung des Speichers (Knoten verschieben).
  • 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
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
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
Lisp 2 Algorithmus (2/2)
  • 2.Durchlauf interne Zeiger aktualisieren anhand
    der Adresseinträge in den Headern
  • 3.Durchlauf Knoten tatsächlich verschieben

8
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
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
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
Jonkers Algorithmus (1/2)
  • Threaded
  • Zuerst vorwärtszeigende Zeiger threaden
  • Wird P erreicht werden alle schon gethreadeden
    Knoten aktualisiert

12
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
Überblick
  • Geeigneter Algorithmus muss entsprechend Vorgaben
    gewählt werden.

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

15
Laufzeitmessungen
X-Achse Heap Größe Y-Achse Zeit
16
Cache Misses
X-Achse Heap Größe Y-Achse Zeit (a) / Cache
Misses (b - d)
17
Performance in Generationensystemen
X-Achse Speichergröße für neue Objekte Y-Achse
Zeit (a-c) / Cache Misses (d-f)
18
Danke für eure Aufmerksamkeit
Write a Comment
User Comments (0)
About PowerShow.com