Java 10 – Die 12 Java Enhancement Prospals: Teil 3 JEP 304 das Carbage Collector Interface

Java 10 – Die 12 Java Enhancement Prospals: Teil 3 JEP 304 das Carbage Collector Interface

In der aktuellen Struktur der JDK sind die Komponenten, aus denen die Implementierung des Garbage Collector besteht in der Codebasis verstreut. Während dieses Schema erfahrenen Entwicklern keine Probleme bereitet, ist es für Einsteiger schwierig den Quellcode für eine bestimmte Garbage Collection zu finden oder eine neue zu erstellen. Mit der Modularisierung von Java seit der JDK 9 ist es jedoch wünschenswert nicht mehr benötigt GC aus dem Build-Prozess auszuschließen. In der derzeitigen Struktur des GC-Interfaces ist dies jedoch nicht möglich.

Das JEP 304 Carbage Collector Interface soll dabei als Lösung des Problems dienen. Es schlägt vor, das GC-Interface auszubauen und zu gut es geht zu bereinigen. Das ermöglicht eine bessere Wartung bestehender GC’s, sowie eine einfachere Implementierung neuer GC’s. Danach wäre die GC-Implementierung für Folgendes verantwortlich:

  • Den Heap, eine Unterklasse von CollectedHeap
  • Dem Barriere Set, eine Unterklasse von BarrierSet, diese implementiert verschiedene Barrieren für die Laufzeit
  • Eine Implementierung von CollectorPolicy
  • Eine Implementierung von GCInterpreterSupport, die die verschiedenen Barrieren einer GC für den Interpreter implementiert (mit Assembler-Anweisungen)
  • Eine Implementierung für GCC1Support, welche die verschiedenen Barrieren für einen GC für den C1 Compiler implementiert
  • Eine Implementierung für GCC2Support, diese implementiert die verschiedenen Barrieren für den C2 Compiler
  • Die Initialisierung möglicher GC-spezifischer Argumente
  • Einrichtung eines MemoryService, des zugehörigen Speicherpools, -manager, etc.

Weitere Informationen findet Ihr unter JEP 304: Garbage Collector von OpenJDK.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.