JDK 9 soll neuen Standard-Garbage-Collector bekommen

G1 soll den momentanen voreingestellten Parallel GC als Garbage Collector ablösen, vorausgesetzt, dass bis zum Veröffentlichungstermin von JDK 9 im September 2016 keine kritischen Probleme auftreten.

In Pocket speichern vorlesen Druckansicht
JDK 9 soll neuen Standard-Garbage-Collector bekommen
Lesezeit: 2 Min.
Von
  • Julia Schmidt

Nach einiger Diskussion auf der Mailing-Liste des OpenJDK-Projekts ist der Wechsel der standardmäßig gesetzten Garbage Collection für bestimmte Rechner nun auf der Liste der für JDK 9 vorgesehenen Neuerungen zu finden. Namentlich soll G1 den bisherigen Standard Parallel GC ersetzen, der zwar in Sachen Durchsatz wohl besser dasteht, aber länger pausieren muss. Der Umstieg folgt also der Annahme, dass es bei vielen Anwendungen wichtiger ist, die Latenz gering zu halten, als den Durchsatz zu erhöhen.

G1 wird zwar als robust und gut getestet angesehen, allerdings wurde auf der Mailing-Liste anklingen lassen, dass wenige Bug Reports auch darauf schließen lassen könnten, dass der Garbage Collector einfach nicht häufig genug im Einsatz ist. Daher wurde der entsprechende JDK-Enhancement-Vorschlag ergänzt, sodass nun darauf hingewiesen wird, dass man zwar keine Stabilitätsprobleme erwarte, aber die alte Voreinstellung vor Veröffentlichung der fertigen Version 9 wiederherstellen wolle, sollten nach der Umstellung durch die stärkere Nutzung ernste Probleme ans Licht treten. Sollte es gewünscht sein, den Ressourcen-Overhead zu reduzieren, müsste ein Projekt in Zukunft von Beginn an mit einem anderen Collector arbeiten, der vorher explizit festzulegen sei.

Im Zuge der Diskussion wurde als Argument für den Umstieg zudem angeführt, dass bis zur Veröffentlichung des fertigen JDK noch genug Zeit für Tests in der Community bleibe. Der Hinweis stieß allerdings auf Kritik, da man bis dahin auch andere Komponenten gründlichen Tests unterziehen müsse. So soll Java 9 unter anderem mit einem Modulsystem aufwarten können, dem in der Review-Phase wahrscheinlich einige Zeit zu schenken ist. Das JDK 9 ist eine Referenzimplementierung der Java-SE-9-Plattform.

Siehe dazu auf heise Developer: