© Excellent backgrounds/Shutterstock.com
JDK 13

JDK 13: Das sind die neuen Features


JEP350.jpg_fmt1.jpg

JEP 350 – Dynamic CDS Archives

Da die Usability beim Teilen der Klassendaten von Anwendungen (Application Class-Data Sharing – AppCDS) ein wenig zu wünschen übrig lässt, wurden die neuen dynamischen CDS-Archive vorgeschlagen. Diese würden die in Java 10 erstmals enthaltene Funktionalität insofern erweitern, als am Ende der Ausführung einer Java-Anwendung die entsprechenden Klassen – wie der Name schon sagt – dynamisch archiviert werden. In diesen Archiven enthalten wären dann alle Anwendungsklassen, die zuvor geladen wurden, und sämtliche Bibliotheksklassen, die nicht im Standard-Base-Layer-CDS-Archiv enthalten sind. Nutzer müssten so keine Probeläufe mehr für das Erstellen von Klassenlisten für jede einzelne Anwendung durchführen. Zukünftig könnte dann durchaus auch eine automatische Erstellung von Archiven beim ersten Starten einer Anwendung möglich werden, was die Nutzung von CDS/AppCDS komplett automatisiert und transparent machen würde.

JEP351.jpg_fmt1.jpg

JEP 351 – Uncommit Unused Memory

In JEP 351 geht es konkret um den Garbage Collector ZGC, der leider in seiner derzeitigen Form ungenutzten Heap-Speicher nicht ans Betriebssystem zurückgibt. ZGC besteht aus sogenannten Heap-Regionen (ZPages), für die ein gewisser Teil des Speichers festgelegt (committed) wird. Komprimiert ZGC den Heap, werden die ZPages in einen Page-Cache eingebettet (ZPageCache) und können bei Bedarf für neu aufkommenden Heap wiederverwendet werden. Da die ZPages ohnehin schon nach ihrer letzten Nutzung und nach drei verschiedenen Größen (klein, mittelgroß, groß) sortiert im Cache hinterlegt sind, soll ein (Standard-)Zeitwert definiert werden, nach dem eine bestimmte ZPage (und der damit verbundene Speicher) wieder freigegeben wird. Im Shenandoah GC ist dies bereits umgesetzt, dort wird ungenutzter Speicher standardmäßig nach fünf Minuten wieder „uncommittet“. Der Wert ist zudem via Kommandozeile mit dem Befehl -XX:ShenandoahUncommitDelay=<milliseconds> frei definierbar.

JEP353.jpg_fmt1.jpg

JEP 353 – Reimplement the Legacy Socket API

Unter dem Decknamen Project Loom wird unter anderem die Implementierung sogenannter Fibers (leichtgewichtige Userthreads) vorangetrieben. Diese neuen Technologien verändern auch den Blick auf bereits altgediente APIs, etwa java.net.Socket und java.net.ServerSocket. Diese Schnittstellen und deren Implementierung sind bereits seit JDK 1.0 an Bord und offenbar recht schwierig auf Stand und am Laufen zu halten (bestehend aus einem Wirrwarr von veraltetem Java- und C-Code). JEP 353 sieht vor...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang