Java Garbage Collection Angelika Kusel, 0055089. Überblick Was ist Garbage Collection? Vor- und Nachteile von GC GC-Algorithmen/Verfahren Java Garbage.

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Kap. 7 Sortierverfahren Kap. 7.0 Darstellung, Vorüberlegungen
DGC 1. 2 Motivation x new(x) delete(x) Speicher DGC 3 Inhalt Einführung GC / DGC Der ideale DGC Algorithmen Zusammenfassung.
Prof. Dr. S. Albers Prof.Dr.Th Ottmann
C Tutorium – Fehlerbehandlung – Knut Stolze. 2 Grundsatz Also ist auch nach jedem Funktionsaufruf auf Fehler zu prüfen!! Jeder(!) Funktionsaufruf kann.
5. Sortier-Algorithmen Vorbemerkungen:
der Universität Oldenburg
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
Java: Objektorientierte Programmierung
Sortierverfahren Richard Göbel.
Indirekte Adressierung
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
Motivation Richard Göbel.
Garbage Collection Maik Theisen Betreuer: Guido Tack
Spektrale Analysen in EMU-R: eine Einführung
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
Prof. Dr. S. Albers Prof. Dr. Th. Ottmann
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (11-1 –Selbstanordnende lineare Listen) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27-Selbstanordnende lineare Listen) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (15 Hashverfahren: Verkettung der Überläufer) Prof. Th. Ottmann.
Union-Find-Strukturen
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 16 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Genetische Algorithmen
OpenMP Präsentation im Rahmen des Seminars
6 Folgen (Teil II - Datenstrukturen und Algorithmen)
Vortrag III Hier in der Vorlesungszeit! Anwesenheitspflicht Jede Gruppe hat 6 Minuten! Stellt eure GUI vor –was ihr besonderes gemacht habt –Spektakuläre.
Arrays,Strings&Pointer in C/C++
ENDEVOR Archivierung, Backup und Recovery
VM Memory Management Thomas Nguyen
Gegenstand EDV Thema: Informative Webseiten
GC-Tuning, Infopoint, Jörg Wüthrich1 GC-Tuning Erfahrungsbericht.
Effiziente Algorithmen
Mark & Sweep Seminar Softwareentwicklung: Garbage Collection Eva Schartner.
EPROG Tutorium Einheit 4 Klassen und Objekte. Wiederholung Schleifen do... while while for break/continue Strings String char Methoden für Strings Arrays.
Diskrete Mathematik II
Effiziente Algorithmen
1. Verhalten der Objekte: Operationen Werden in den Klassen definiert Werden (i.d.R.) auf einem Objekt aufgerufen Wird das Empfängerobjekt genannt Weitere.
Einführung in die Programmiersprache C 4
Vom Umgang mit Daten. public void myProgram() { int[] saeulenWerte = new int[world.getSizeX()]; for (int i = 0; i < saeulenWerte.length; i++) { saeulenWerte[i]
Analyse von Ablaufdiagrammen
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
HORIZONT 1 XINFO ® Das IT - Informationssystem Assembler HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 /
Dynamische Datentypen
Garbage Collection unter .NET
Stefan Loidl, , Reference Counting II Freigeben zyklischer Zellstrukturen.
Thread Synchronisation in JAVA
Mark – Compact GC & Performancemessungen Bernhard Prügl,
EPROG Tutorium #3 Philipp Effenberger
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.
Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen.
Parallelisierung für Multiprozessor-Maschinen
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Vs Objektpufferung (caching) = dynamische, ad-hoc-Replikation einer Primärkopie: Zugriffswilliger beschafft sich temporär eine lokale Kopie cache.
Autor: Timo Pagel Nutzung: Diese Lernkarten sind für die Nutzung mit OpenCards gedacht Siehe dazu
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder.
Der Train-Algorithmus
C Tutorium – Memory Management – Knut Stolze. 2 Agenda Einführung in die Speicherverwaltung Stack vs. Heap Malloc Free Sizeof Tipps/Hinweise.
5 Memory Leaks, die auch in Ihrer.NET Anwendung sein könnten André Krämer Softwareentwickler, Trainer, Berater.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Tutorium Software-Engineering SS14 Florian Manghofer.
C++ FÜR cOMPUTERSPIELENTWICKLER
© 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.
Pointer. * und &  Bei der Definition int var1; ○ // „normale“ Variable int *var2; ○ // Zeiger auf einen Integer int *var2 = NULL; ○ // … incl. Initialisierung.
Dr. Wolfram Amme, Automatische Speicherverwaltung, Informatik II, FSU Jena, SS Automatische Speicherverwaltung.
Grundkurs Informatik 11-13
 Präsentation transkript:

Java Garbage Collection Angelika Kusel,

Überblick Was ist Garbage Collection? Vor- und Nachteile von GC GC-Algorithmen/Verfahren Java Garbage Collection Anpassung des Java GCs an die eigene Anwendung

Was ist Garbage Collection? automatische Erkennung und Freigabe von nicht mehr referenzierten Objekten somit zurück gewonnener Speicher steht dem System wieder zur Verfügung a b a = b;ab

Vor- und Nachteile Vorteile: kein explizites Freigeben von Speicher nötig Beseitigung von folgenden Fehlerquellen zu frühe Freigabe (Dangling Pointer) gar keine Freigabe Nachteile: zusätzlicher Overhead, der vom Laufzeitsystem bewältigt werden muss

GC-Algorithmen/Verfahren (1/2) 2 grundsätzliche Aufgaben: Garbage-Objekte erkennen Speicherplatz dem Programm wieder zugänglich machen lebendige Objekte sind solche, die von einem Wurzelzeiger aus erreicht werden können Wurzelzeiger finden sich in: lokalen Variablen am Stack in globalen (statischen) Variablen in Registern Heap

GC-Algorithmen/Verfahren (2/2) Reference Counting -> ältestes Verfahren, nicht in Java verwendet Mark and Sweep Mark and Compact Stop and Copy Generation Scavenging Train Algorithmus

Mark and Sweep 2 Phasen: mark-Phase und sweep-Phase mark-Phase: Markierung aller von den Wurzelzeigern aus erreichbaren Objekte sweep-Phase: sequentieller Heap-Durchlauf Zurücksetzen der Markierung Freigabe von unmarkierten Objekten

Mark and Compact -> verdichtende Variante von Mark and Sweep 1) mark(); 2) berechne für jeden markierten Block die Zieladresse nach Verdichtung 3) Biege Wurzelzeiger und die Zeiger in den Blöcken auf die neue Zieladresse um 4) Verschiebe die Blöcke auf die neue Zieladresse 03264

Stop and Copy (1/2) to Space unbenützt from Space abcdef to Space from Space abcdef ad abcdef to Space ad c scan free scan == free

Stop and Copy (2/2) Vorteile: verdichtendes Einpaß-Verfahren (vgl. Mark and Compact: 1 Mark-Phase plus 3 Sweep-Phasen) Laufzeit abhängig von der Anzahl der lebenden Objekte (bei Mark and Sweep: abhängig von Heapgröße) Nachteile: nur die Hälfte des Heaps kann verwendet werden das Kopieren der Objekte kostet Zeit

Generation Scavenging Variante des Stop and Copy Unterscheidung zwischen kurzlebigen und langlebigen Objekten newFromnewTo oldFromoldTo Wurzelzeiger

Train Algorithmus (1/5) inkrementelles Verfahren der gesamte Heap ist in Blöcke gleicher Größe unterteilt bei jedem Aufruf wird 1 Block mit dem Stop and Copy Verfahren bereinigt (jeweils der erste Waggon im Zug mit der niedrigsten Nummer) Zug 1 Zug 2 Zug 3

Train Algorithmus (2/5) Welche Objekte müssen kopiert werden? Wohin werden die Objekte kopiert? -> abhängig davon, von wo das Objekt erreicht wird von Wurzelzeiger: in den letzten Waggon des letzten Zugs (nicht erster Zug), wenn voll -> neuer Zug von einem Waggon des Zugs z: in den letzten Waggon des Zugs z, wenn voll -> neuer Waggon im Zug z abcedf Remembered Sets c d Wurzelzeiger

Train Algorithmus (3/5) R A C S DE T F B B, F S DE T F B C, R R A C Annahme: max. 3 Objekte finden in einem Waggon Platz

Train Algorithmus (4/5) T F B E, S R A C S DE

Train Algorithmus (5/5) B C R A S DE T F C B R A S T

Aufbau in Java Hotspot VM vereinigt mehrere Verfahren newSpace oldSpace nursery fromto Survivor Space Heap Anlage neuer Objekte Platz für lang- lebige Objekte Mark and Compact (default) oder Train Algorithmus

ab Java Hotspot VM zusätzliche parallele GC-Verfahren (für parallele Anwendungen) Für die junge Generation Parallel Collector (paralleles Stop & Copy - Verfahren) Für die alte Generation Concurrent Mark & Compact Collector

Anpassung des GCs -Xincgc Umschaltung auf Train Algorithmus -XX:+UseParallelGC Umschaltung auf parallele GC -verbose:gc bzw. –Xloggc:file erzeugt Ausgabe bei jedem GC-Lauf (zur Analyse des Verhaltens des GCs) zahlreiche weitere Parameter zur Steuerung der Größe bzw. der Größenverhältnisse