IBM a introduit les Runtimes Semeru gratuits qui utilisent les bibliothèques de classes d'OpenJDK avec la Machine virtuelle Java (JVM) d'Eclipse OpenJ9. Les runtimes, basés sur OpenJ9, peuvent être utilisés comme alternative aux runtimes basés sur HotSpot. Auparavant, AdoptOpenJDK produisait des binaires avec OpenJ9, mais ce n'est plus légalement autorisé depuis leur passage à la Fondation Eclipse sous le nouveau nom, Adoptium.
IBM fournit les Runtimes Semeru basés sur Java 8, 11 et 16 pour Linux, Windows, macOS et AIX ainsi que diverses architectures. Les images Docker suivront bientôt. Deux versions sont disponibles : une édition ouverte avec une licence d'extension open source GPLv2+Classpath et une édition certifiée avec une licence IBM. Les deux versions réussissent la suite de tests Eclipse AQAvit et la Certified Edition passe le TCK également. La Certified Edition remplace l'ancienne version d'IBM SDK Java Technology Edition 11. Il n'y a aucune restriction d'utilisation et les runtimes peuvent être utilisés n'importe où, du développement à la production. IBM propose un support commercial facultatif via les Runtimes for Business d'IBM.
La présentation des performances créée par le projet Eclipse OpenJ9 compare les machines virtuelles OpenJ9 et Hotspot pour OpenJDK 11. OpenJ9 démarre environ deux fois plus rapide grâce au cache de classes partagé et à la compilation anticipée (AOT). Après le démarrage et pendant le chargement, l'empreinte est inférieure de plusieurs dizaines de pourcentages par rapport à Hotspot. Enfin, le débit de pointe est atteint plus rapidement avec OpenJ9, bien que Hotspot ait un débit plus élevé sur le long terme. OpenJ9 présente également des avantages similaires lorsqu'il est utilisé avec Quarkus.
Les versions récentes d'OpenJ9 ont introduit des améliorations pour l'exécution à l'intérieur des conteneurs. L'un d'eux est l'option de ligne de commande -XX:+ClassRelationshipVerifier
pour vérifier paresseusement les relations de classe, car certaines classes ne sont jamais chargées. Cela améliore les temps de démarrage. Le cache de classe partagé (SCC) est utilisé pour mettre en cache les classes Java, le code compilé AOT, etc. Le cache persiste même après l'arrêt de la JVM pour garantir des performances de démarrage continues, la prochaine fois que les informations sont chargées à partir de la mémoire au lieu du disque. Les tests d'OpenJ9 montrent que ces améliorations se traduisent par un temps de démarrage 45% plus rapide lorsque l'on compare OpenJ9 avec HotSpot.
Lors de JavaOne 2016, John Duimovich, alors CTO Java chez IBM, a annoncé que leur Java Virtual Machine J9 propriétaire serait mise en open source et donnée à la Fondation Eclipse. IBM a continué à travailler sur OpenJ9 depuis lors. IBM WebSphere Liberty et WebSphere Application Server utilisera également les environnements d'exécution Semeru.
Plus d'informations sont disponibles dans le guide de démarrage.