Java 12 mit Switch Expressions und Micro-Benchmarks

Für Java 12 ist JDK 12 die quelloffene Referenzimplementierung. Die von Oracle unter der GPL angebotene Java-Version bringt mehrere neue Features mit, darunter Switch Expressions und eine Micro-Benchmarking-Suite.

Switch Expressions sind laut der offiziellen Ankündigung noch ein Preview-Feature (JEP 325) und sollen das Pattern Matching (JEP 305) vereinfachen: Dabei geht es darum, die “switch”-Anweisung wahlweise als Anweisung oder als Ausdruck einsetzen zu können. Zugleich sollen beide Varianten sowohl mit traditionellem als auch vereinfachtem Gültigkeitsbereich und Kontrollfluss-Verhalten aufwarten.

Micro-Benchmarks

Der JDK-Quellcode bringt nun eine Suite von Micro-Benchmarks (JEP 230) mit. Die basieren auf dem Java Microbenchmark Harness (JMH), sollen von Entwicklern einfach zu verwenden sein und dienen zum Einsatz beim Continuous Performance Testing. Sie zielen auf komplette und stabile Features (nach dem Feature Complete Milestone), nicht aber auf neue Features. Sie sollen die Performance anhand der Differenzen zu vorherigen JDK-Releases verdeutlichen. Zugleich soll es einfach sein, die Benchmarks zu finden und auszuführen, neue zu ergänzen und Tests zu aktualisieren oder zu entfernen.

Müllabfuhr

Auch ein neuer und noch experimenteller Garbage-Collection-Algorithmus ist an Bord, der auf den Namen Shenandoah hört und den das JEP 189 näher beschreibt. Demnach reduziert Shenandoah die Garbage-Collection-Pausen, indem er parallel zu den laufenden Java-Threads aufräumt. Die Pausenzeiten von Shenandoah sind dabei unabhängig von der Heap-Größe, betrage diese nun 200 MByte oder 200 GByte. Es gibt andere GC-Algorithmen, Shenandoah zieht der Entwickler vor allem dann heran, wenn er vorhersagbar kurze Pausen und schnelle Reaktionszeiten anstrebt.

Apropos Garbage Collection: Mixed Collections für den Garbage-Collector-Algorithmus G1 (Garbage First) lassen sich nun abbrechen, wenn sie bestimmte Pausenzeiten überschreiten. Hat der G1-Algorithmus zudem nichts zu tun, gibt er sofort Heap Memory frei.

ARM, Data Sharing, Konstanten

Zu den weiteren Neuerungen von Java 12 gehört, dass der Code für den ARM64-Port entfernt wird. Stattdessen wollen sich die Entwickler auf einen ARM-64-Zweig konzentrieren, den Aarch64-Port. Der JDK-Buildprozess generiert neuerdings einen Data-Sharing-Archiv für Klassen, indem er auf 64-Bit-Plattformen die Liste der Standardklassen heranzieht. Das soll die Startzeit reduzieren und die Angabe von Zusatzoptionen vermeiden. Nicht zuletzt bringt die Java Virtual Machine neuerdings ein API mit, um die aus dem Konstanten-Pool der Klassen zu ladenden Konstanten zu beschreiben. Herunterladen lässt sich Java 12 auf den Seiten von Oracle.

E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben