Compilers Everywhere

Mit Java 1.0 war die Welt noch einfach. Es gab einen Compiler, der Java-Quellcode in Bytecde übersetzte und eine virtuelle Maschine, die Bytecode interpretierte. Das änderte sich mit Java 1.2. Sun führte die sogenannte Hot-Spot-VM ein, die beim Erkennen von "heißen" Code-Stellen, also besonders häufig ausgeführten Code-Segmenten, diese on the fly in Maschinen-Code der realen Hardware übersetzte und ausführte. Der Just-In-Time-Compiler (JIT) war geboren.

Heute gibt es im OpenJDK zwei davon, den Client-Compiler, C1 genannt, und den Server-Compiler, C2 genannt. Man kann (manchmal) sich für einen entscheiden oder beide kombinieren, der sogenannten Tiered Compilation. Mit Java 9 kam der Ahead-of-Time Compiler (AOT) hinzu, wenn auch zunächst nur experimentell und nur für Linux. Dieser übersetzt wie ein normaler Compiler den Quellcode in direkt ausführbaren Maschinen-Code. IBMs JDK macht dies schon seit Java 8. Basis des OpenJDK-AOT-Compilers ist Graal, der neue JIT-Compiler und als GraalVM das Polyglot-Laufzeitsystem für die JVM. Graal wurde mit dem JEP 317 in Java 10 integriert und steht damit auch als JIT-Compiler zur Verfügung, zunächst auch nur experimentell.

Wir versuchen, in diesem Talk einen Überblick über die verschiedenen Java-Compiler zu geben, um den Wald trotz lauter Bäume sehen zu können. Begriffe wie Compiler Threshold, On-Stack Replacement und Escape Analysis werden erläutert.

Vorkenntnisse

Grundkenntnisse Java und JVM

Lernziele

Am Ende des Vortrags hat der Zuhörer einen Überblick über die verschiedenen Compiler und kann Java-Compiler-Welten besser verstehen.

 

Speaker

 

Bernd Müller
Bernd Müller arbeitete nach seinem Studium der Informatik und der Promotion für IBM und die HDI Informationssysteme GmbH. Er ist Geschäftsführer und Professor, Autor mehrerer Bücher zu den Themen JSF und JPA sowie regelmäßiger Speaker auf nationalen und internationalen Konferenzen.

Gold-Sponsoren

Deloitte.
e.solutions

Silber-Sponsoren

codecentric
ISO-Gruppe
INNOQ
Nürnberger Versicherung

Herbstcampus-Newsletter

Sie möchten über den Herbstcampus
auf dem Laufenden gehalten werden?

 

Anmelden