web-dev-qa-db-fra.com

Différence technique entre AdoptOpenJDK et Red Hat OpenJDK pour Windows

Red Hat fournit le Red Hat OpenJDK 8 pour Windows à des fins de développement uniquement (enregistrement obligatoire). AdoptOpenJDK fournit des versions OpenJDK 8 pour Windows ( AdoptOpenJDK 8 Windows ) sans aucune restriction.

Existe-t-il une différence technique entre les deux packages lorsque vous utilisez la même version/mise à jour (par exemple 8u181)? Par "différence technique", je veux dire des classes/fonctions manquantes, des paramètres JVM par défaut différents, etc.

4
koe

Red Hat fournit les fichiers binaires Windows OpenJDK 8 sous exactement la même licence que AdoptOpenJDK et n’importe quelle autre version OpenJDK 8 à code source ouvert - sous la GNU GPL v. 2 avec exception Classpath . Toutes les restrictions relatives à "l'utilisation du développement" ne concernent que l'abonnement (support) pouvant être acheté auprès de Red Hat.

Les différences techniques entre Red Hat OpenJDK 8 pour Windows et les autres versions mentionnées sont plutôt mineures, car elles passent toutes TCK . En règle générale, les versions de Red Hat essayent de rester aussi proches que possible du comportement du paquet OpenJDK 8 inclus dans RHEL et CentOS.

Différences:

  1. La compilation de RH OpenJDK 8 est effectuée à partir des sources du package OpenJDK RPM utilisé sur RHEL/CentOS. Ces sources sont généralement très proches de sources en amont , mais contiennent quelques modifications (voir les points ci-dessous) et peuvent inclure des corrections de bogues (correctifs RPM) à l’avance. Les modifications RHEL/CentOS peuvent être suivies dans un repo public pour CentOS RPM

  2. RH OpenJDK 8 inclut le ramasse-miettes Shenandoah

  3. RH OpenJDK 8 utilise des sources RHEL/CentOS pour les bibliothèques de dépendances (zlib, giflib, libjpeg-turbo, libpng, nss) au lieu des sources (partielles) de ces bibliothèques incluses dans l'arborescence des sources jdk en amont.

  4. L'implémentation de la cryptographie elliptique dans RH OpenJDK 8 ne comprend que les 3 courbes elliptiques les plus courantes - NIST P-256, NIST P-384 et NIST P-521.

  5. RH OpenJDK 8 utilise l’ensemble des certificats de l’autorité de certification racine de RHEL/CentOS.

  6. RH OpenJDK 8 peut utiliser des données de fuseau horaire légèrement plus récentes - elles proviennent de RHEL/CentOS.

  7. RH OpenJDK 8 inclut tous les codes de sources Java dans le fichier src.Zip (utilisé par les IDE pour permettre la navigation dans le code jdk). Dans la construction en amont, une partie substantielle de ces sources n’est pas incluse.

  8. RH OpenJDK 8 n'inclut pas de démos ni d'échantillons

  9. RH OpenJDK 8 comprend un ensemble de fichiers de polices

  10. tous les fichiers binaires natifs de RH OpenJDK 8 sont signés par un certificat RH

  11. Le programme d’installation de RH OpenJDK 8 inclut une implémentation JavaFX

  12. Le programme d’installation de RH OpenJDK 8 inclut une implémentation de WebStart

Source: Je travaille sur OpenJDK Windows construit à RH.

8
alexkasko

La principale différence dans AdoptOpenJDK que j'ai trouvée est que vous pouvez choisir entre 2 implémentations différentes VM, soit le HotSpot que j'ai trouvé présente des performances lentes similaires à celles de Oracle, ou bien plus efficace. Eclipse Open J9 Jvm est une implémentation basée sur l'ancien IBM SDK 8 qui est maintenant open source. .__ Pour confirmer, j’ai un projet Eclipse Maven qui compile lentement l’implémentation de la machine virtuelle Java d’Oracle.

  1. AdoptOpenJDK Eclipse Open J9 - 1 minute 
  2. IBM SDK 8 (licence commerciale) - 1 minute
  3. AdoptOpenJDK OpenJDK8 avec HotSpot - 7 minutes
  4. Oracle Java HotSpot (TM) (version 1.8.0_181-b13) - 11 minutes

Je pense donc que la JVM Oracle à code source ouvert a donné de meilleurs résultats que la machine virtuelle JVM commerciale d’Oracle. Toutefois, le code JDK d’IBM avec Open J9 est bien meilleur et les performances sont 1 fois plus rapides en compilation (pour mon projet).

1
Gabriel Hernandez