Java Virtual Machine

Die verwendete Java Virtual Machine (JVM) ist das A und O der Performance einer Java-Anwendung. Doch welche eignet sich für welchen Einsatzzweck? Verschaffen Sie sich auf dieser Seite einen Überblick.

Java Virtual Machine

Entscheidend für die Performance einer Java Anwendung ist die verwendete Java Virtual Machine. Es gibt eine Reihe verschiedener JVMs. Die bekanntesten sind wahrscheinlich die ehemalige Sun HotSpot JVM, welche nun ebenso zu Oracle gehört wie die JRockit JVM. Als dritte im Bunde ist die IBM JVM zu sehen.
Zusätzlich dazu gibt es weitere JVMs. So zum Beispiel die Open-Source-Implementierung OpenJDK, oder Azul Zing. Nicht mehr weiterentwickelt werden die JVMs von Apache, Microsoft und Apple.

Im Rahmen unser zweitägigen JVM-Grundlagenschulung vermitteln unsere Trainer umfangreiches, praxisbezogenes Wissen über die JVM am Beispiel der Sun/Oracle Hotspot Java 6 VM. Dabei deckt sie das gesamte Themenspektrum von der internen Funktionsweise der JVM bis hin zum JVM- Monitoring und -Tuning ab.

Java Virtual Machine Beispiele

JVM Flags

In unserer Blog-Serie beschreiben wir nützliche JVM Flags, mit Hilfe derer sich die JVM einstellen lässt, und welche auch helfen können, die Performance einer Anwendung zu verbessern.

 

Sun HotSpot

Die ehemalige Sun JVM ist die wohl am meisten verbreitete JVM. Sie ist kostenlos erhältlich und wird bei vielen Entwicklungsumgebungen und Werkzeugen mitgeliefert. Auf Grund dessen finden sich im Internet zu ihr auch die meisten Anleitungen und Tuning Guides. Mit Version 7 fand der sogenannte Garbage-First (G1) Collector Einzug und liefert so häufig deutlich bessere Performance als die bisher eingesetzten Throughput- und CMS-Collectoren.

Oracle JRockit

JRockit findet sich häufig bei WebLogic Application Servern. Es verfügt mit „MissionControl“ über eine solide Monitoringoberfläche. Als häufig genannter Unterschied zu der Sun VM wird der nichtvorhandene Permanent Generation Space genannt. Eine volle PermGen tritt bei der HotSpot relativ häufig auf, ist aber fast immer auf falsche Bedienung zurückzuführen und kein grundsätzliches Problem.

IBM J9 JVM

Die Virtual Machine von IBM ist immer dort anzutreffen, wo Websphere läuft. Genauso selten, wie man eine andere JVM unter Websphere findet (z.B. unter Solaris), wird man eine IBM JVM ohne Websphere antreffen. IBM liefert mit dem IBM Support Assistant ein sehr gutes Set von Diagnosewerkzeugen mit, jedoch verhindert eine Eigenheit der Implementierung von Bytecodemodifikation den Einsatz vieler anderen Messwerkzeuge.

Azul Zing

Azul Systems stellte bisher hauptsächlich hardwaregebundene JVMs her. Seit Mitte 2011 liegt der Fokus auf einer JVM, die auf Standard-Linux läuft. Zing basiert auf der HotSpot-Implementierung, bringt jedoch einen eigenen Garbage Collector mit, welcher als einziger komplett pausenzeitenfrei arbeiten kann. Weitere Funktionen konzentrieren sich ebenfalls auf eine hocheffiziente VM, welche insbesondere in Tradingsystemen mit geringen Latenzzeiten eingesetzt wird.

Open Source

Einen Sonderfall stellt das OpenJDK dar. Es ist Open Source und damit für herstellerneutrale Projekte interessant und wird von Oracle und IBM als freie Version ihrer kostenpflichtigen Produkte vorangetrieben.
Aus verschiedenen lizenzrechtliche Probleme und Streitigkeiten wurde Apache Harmony eingestellt. Harmony diente Google als Grundlage für die Dalvik VM.
Aus der Sicht von Performance sind Open-Source oder alternative JVMs aber nur von nachgeordnetem Interesse, da fast alle Produktionsysteme entweder eine HotSpot, JRockit oder IBM JVM verwenden.

Nehmen Sie Kontakt mit uns auf.

Jetzt informieren!