web-dev-qa-db-fra.com

Y a-t-il des différences de performance entre OpenJDK et Oracle?

Oracle a récemment décidé de commencer à charger l'utilisation commerciale de leur JVM.

Notre équipe a commencé à basculer vers l'utilisation de OpenJDK et trouvez que tout semble fonctionner, sauf que nous obtenons des performances plus lentes.

Nos serveurs sont des serveurs Linux et selon notre équipe de performance,

Nous avons observé une lenteur significative sur la plupart Java appels. Nous avons examiné les journaux et avons étudié quelques-uns des appels, et nous ne voyons aucune exception ni aucune erreur, juste à côté de la lenteur.

Quelqu'un d'autre a-t-il des données sur lesquelles ceci est vrai ou non, que OpenJDK est en moyenne plus lente que l'Oracle JVM?

Réponse: Pour nous, la question a été déterminée à faire quelque chose à voir avec haproxy sur Ubuntu et OpenJDK. Si ces 3 choses ont été combinées, nous verrions un délai de 5 ms supplémentaire sur chaque socket connexion. Changer l'un de ces 3 facteurs et la performance a été restaurée.

Je vais aussi poster cela comme une réponse, il peut donc être repéré aux deux endroits

4
Brad Parks

Comme pour Java 11 , les différences sont fondamentalement les installateurs, les fournisseurs de crypto (signés vs non signés) et quelques options de ligne de commande pour la gestion avancée et Migration des versions antérieures, comme expliqué dans ce blog Oracle Post: https://blogs.oracle.com/java-platform-group/oracle-jdk-relases-for-java-11-and-later Englisons

Les versions antérieures ont eu quelques différences supplémentaires: elles avaient d'autres bibliothèques 2D, de rendu de la police, de service/de gestion et de crypto et qui pourraient causer des différences de performance, comme expliqué Ici: https://www.thegeekeekdiar.com/openjdk-vs-oracle-jdk-diforences-between-openjdk-and-oracle-jdk/ . La gestion de la mémoire et le partage de données de classe pourraient également être la raison de différentes caractéristiques de performance.

1
marcus