Suite à une demande récente d’un lecteur concernant l’affichage de nouveaux benchmarks de performances OpenJDK, voici les benchmarks d’OpenJDK 9 à OpenJDK 18 ainsi que les versions d’OpenJDK 19 à accès anticipé. De plus, OpenJ9 et GraalVM CE ont été ajoutés comme implémentations alternatives.
Pour satisfaire cette demande de lecteur, un processeur Intel Core i5 12600K avec Ubuntu 22.04 LTS a été utilisé pour cette série de benchmarks Java JVM. Toutes les versions d’OpenJDK testées ont été obtenues à partir des binaires officiels d’OpenJDK et en utilisant les dernières versions au moment des tests. De même, les binaires de référence d’OpenJ9 et de GraalVM CE ont également été utilisés pour les tests. Outre la désactivation de l’implémentation Java pour chaque série de tests, aucune autre modification n’a été apportée pendant les tests. En gardant les choses par défaut/prêtes à l’emploi, aucun argument supplémentaire n’a été transmis à l’implémentation Java lors des tests pour examiner les performances de référence des implémentations JVM.
C’est assez simple et comparaison de référence simple, alors passons aux chiffres.
Le premier était le test Java SciMark 2.0 très basique où, parmi les versions d’OpenJDK, il n’y avait pas beaucoup de changement avec les performances de la JVM. OpenJ9 a bien fonctionné ici et a été aligné sur les résultats OpenJDK les plus rapides-c’était les versions OpenJ9 contre JDK 8/11 tandis que la version JDK 18 était beaucoup plus lente avec les versions GraalVM CE.
OpenJ9 a fonctionné beaucoup plus lentement qu’OpenJDK et GraalVM dans le test Sparse Matrix Multiply.
Mais les builds OpenJ9 JDK 8/11 ont fonctionné beaucoup plus rapidement que les autres pour la factorisation de matrice LU dense.
OpenJ9 a fonctionné plus lentement que le d’autres JVM testées en ce qui concerne le chiffreur de fichiers Bork.
OpenJ9 a également fonctionné plus lentement que les autres pour le H2 DaCapo Benchmark. GraalVM CE a donné les résultats les plus rapides ici, tandis qu’OpenJDK 18 et 19 ont été les versions OpenJDK les plus rapides testées avec succès.
Le test Jython de DaCapo Benchmark a également montré qu’OpenJDK 18 et 19 EA avaient une légère avance sur les anciennes versions et alternatives implémentations.
Dans certains des benchmarks avec Renaissance, OpenJDK 8 était toujours en mesure de mener par des marges étroites.
GraalVM CE d’Oracle fonctionnait très bien dans certains des benchmarks Renaissance par rapport à OpenJDK.
OpenJ9 n’a pas réussi à exécuter certains des benchmarks Renaissance.
La moyenne géométrique est pour tous les benchmarks Java où ils ont été testés avec succès sur toutes les versions/implémentations JVM sous test. OpenJDK 18 et en particulier l’accès anticipé à OpenJDK 19 semblent assez bons dans l’ensemble pour les performances et, dans certains cas, correspondent ou surpassent finalement l’ancienne version d’OpenJDK 8. GraalVM CE a également très bien fonctionné dans certains benchmarks, tout comme OpenJ9 dans quelques domaines sélectionnés.
Ou ci-dessus, un aperçu de la moyenne géométrique de tous les résultats une fois les exécutions OpenJ9 abandonnées, car elles n’ont pas pu s’exécuter quelques-uns des repères de la Renaissance. Ce mélange plus large de données montre qu’Oracle GraalVM CE est assez compétitif par rapport aux performances d’OpenJDK. OpenJDK 19 sous sa forme EA a l’air plutôt sympa du point de vue des performances. OpenJDK 19 GA est attendu en septembre.
Ceux qui souhaitent parcourir tous ces résultats de benchmark JVM dans leur intégralité peuvent le faire via cette page de résultats. Encore une fois, les tests visaient à jeter un coup d’œil par défaut/prêt à l’emploi sur les performances de la JVM dans ces versions d’OpenJDK et les implémentations alternatives.