Техническое различие между AdoptOpenJDK и Red Hat OpenJDK для Windows

Red Hat предоставляет Red Hat OpenJDK 8 для Windows только для разработки (требуется регистрация). AdoptOpenJDK предоставляет сборки OpenJDK 8 для Windows ( AdoptOpenJDK 8 Windows) без каких-либо ограничений.

Есть ли техническая разница между двумя пакетами при использовании одной и той же версии / обновления (например, 8u181)? Под "техническим отличием" я подразумеваю отсутствующие классы / функции, различные настройки JVM по умолчанию и т. Д.

2 ответа

Решение

Red Hat предоставляет двоичные файлы OpenJDK 8 для Windows под той же лицензией, что и AdoptOpenJDK, и для любой другой сборки OpenJDK 8 с открытым исходным кодом - под GNU GPL v. 2 с исключением classpath. Все ограничения по "использованию в разработке" относятся только к подписке (поддержке), которую можно приобрести в Red Hat.

Технические различия между Red Hat OpenJDK 8 для Windows и другими упомянутыми сборками довольно незначительны, так как все эти сборки проходят TCK. Обычно сборки Red Hat стараются максимально приблизиться к поведению к пакету OpenJDK 8, включенному в RHEL и CentOS.

Отличия:

  1. Сборка RH OpenJDK 8 производится из исходников RPM-пакета OpenJDK, который используется в RHEL/CentOS. Эти источники, как правило, очень близки к исходным источникам, но содержат некоторые изменения (см. Пункты ниже) и могут включать некоторые исправления ошибок (исправления RPM) заранее. Изменения RHEL / CentOS можно отслеживать в общедоступном репозитории для CentOS RPM

  2. RH OpenJDK 8 включает сборщик мусора в Шенандоа

  3. RH OpenJDK 8 использует источники из RHEL / CentOS для библиотек зависимостей (zlib, giflib, libjpeg-turbo, libpng, nss) вместо (частичных) источников этих библиотек, которые включены в дерево в исходных jdk-источниках

  4. Эллиптическая криптографическая реализация в RH OpenJDK 8 включает в себя только 3 самых популярных эллиптических кривых - NIST P-256, NIST P-384 и NIST P-521.

  5. RH OpenJDK 8 использует набор корневых сертификатов CA от RHEL / CentOS

  6. RH OpenJDK 8 может использовать немного более новые данные о часовых поясах - они взяты из RHEL / CentOS

  7. RH OpenJDK 8 включает в себя весь исходный код Java внутри файла src.zip (который используется в средах разработки для просмотра кода jdk), в сборку исходной версии значительная часть этих источников не включена

  8. RH OpenJDK 8 не включает демонстрации и образцы

  9. RH OpenJDK 8 включает в себя набор файлов шрифтов

  10. все собственные двоичные файлы в RH OpenJDK 8 подписаны сертификатом RH

  11. Установщик RH OpenJDK 8 включает реализацию JavaFX

  12. Установщик RH OpenJDK 8 включает в себя реализацию WebStart

Источник: Я работаю над сборками OpenJDK для Windows в RH.

Основное различие в AdoptOpenJDK, которое я обнаружил, заключается в том, что вы можете выбрать одну из двух разных реализаций виртуальных машин: либо HotSpot, который, как я обнаружил, имеет аналогичную медленную производительность, чем реализация Oracle, либо гораздо более эффективная реализация Eclipse Open J9 jvm, основанная на бывшем IBM SDK 8, который теперь с открытым исходным кодом. Для подтверждения у меня есть проект Eclipse Maven, который компилируется медленно в реализации JVM Oracle.

  1. AdoptOpenJDK Eclipse Open J9 - 1 минута
  2. IBM SDK 8 (коммерческая лицензия) - 1 минута
  3. AdoptOpenJDK OpenJDK8 с HotSpot - 7 минут
  4. Oracle Java HotSpot(TM) (сборка 1.8.0_181-b13) - 11 минут

Поэтому я думаю, что JVM Oracle с открытым исходным кодом дала некоторые лучшие результаты, чем коммерческая JVM Oracle, однако JDK IBM с открытым исходным кодом с Open J9 намного лучше, а производительность на 1 порядок выше во время компиляции (для моего проекта).

Это не выглядит правдоподобным, что предоставляемый дистрибутив openjdk может использоваться в производственной среде без подписки.

https://developers.redhat.com/products/openjdk/download/ Так что на этой странице правильно сказано, что она предназначена только для разработки. Источник: https://access.redhat.com/solutions/3116731

Другие вопросы по тегам