Die Kunst des Garbage Collector Tunings
Die Garbage Collectoren in der virtuellen Maschine von Sun sind mit
jedem Release weiter entwickelt worden. Mittlerweile sieht sich der Benutzer
einer verwirrenden Vielzahl von GC-Varianten und Konfigurationsparametern
gegenüber. Um Licht ins Dunkel zu bringen werden in diesem Tutorial
die verschiedenen Garbage Collectoren erläutert und eingeordnet und
es werden Strategien für das GC-Tuning besprochen.
In der Sun-JVM wird nicht nur ein Garbage Collector verwendet, sondern
es gibt ein ganze Reihe davon. Das liegt daran, dass in der Sun JVM (wie
auch in den meisten anderen virtuellen Maschinen) generationenabhängige
Garbage-Collection-Algorithmen verwendet werden. Sie teilen den Heap in
unterschiedlich Bereiche (sogenannte "Generationen") für junge und
alte Objekte ein. Auf den verschiendenen Generationen werden unterschiedliche
Algorithmen verwendet: Mark-And-Copy auf der Young Generation und Mark-And-Sweep
auf der Old Generation. Für jeden dieser Algorithmen gibt es Varianten,
die entweder mit einem oder mehreren Thread parallel oder konkurrierend
arbeiten. Jeder der
Algorithmen hat zahlreiche Parameter, mit denen seine Arbeitsweise
konfiguriert werden kann. Die meisten dieser Parameter sind ohne fundierte
Kenntnis der Funktionsweise des jeweiligen GC-Algorithmus kaum sinnvoll
einstellbar.
Die Session führt in die Kunst der Garbage-Collection-Tunings ein.
Es werden die in der Sun JVM verwendeten Algorithmen vorgestellt, damit
der Benutzer entscheiden kann, welcher Collector der richtige für
seine Anwendung ist. Es werden die wichtigsten Konfigurationsparameter
erläutert, damit der gewählte Algorithmus optimal eingestellt
werden kann. Damit man sich beim Tuning nicht verzettelt, ist es wichtig,
sich erst einmal über seine Tuning-Ziele klar zu werden. Deshalb werden
in der Session die wichtigsten Tuning-Ziele definiert und Tuning-Techniken
und Werkzeuge vorgestellt, mit denen die Ziele erreicht werden können. |
|
PREREQUISITES
|
|
Level:
|
intermediate |
Duration:
|
40-60 min |
Prerequisites:
|
Attendants should be familiar with Java. |
Presented at:
|
JUGS Event 2009
,
Bern, Switzerland, Dec 14, 2009
JAX 2010
, Mainz, Germany,
May 3-7, 2010 |
Angelika Langer arbeitet als Trainer und Consultant mit eigenem Schulungsprogramm
im Bereich der Software-Entwicklung mit C++ und Java. Sie ist Sprecher
auf zahlreichen Konferenzen, darunter JavaOne, OOPLSA, JAX, und viele andere.
Zusammen mit Klaus Kreft ist sie Autor zahlreicher Veröffentlichungen,
darunter die ehemalige Kolumne "Effective Java" im JavaMagazin sowie das
online “Java Generics FAQ”. |
|
Weiterführende Informationen:
|
|
Seminars
|
Papers
|
|