Техническое различие между 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.
Отличия:
Сборка RH OpenJDK 8 производится из исходников RPM-пакета OpenJDK, который используется в RHEL/CentOS. Эти источники, как правило, очень близки к исходным источникам, но содержат некоторые изменения (см. Пункты ниже) и могут включать некоторые исправления ошибок (исправления RPM) заранее. Изменения RHEL / CentOS можно отслеживать в общедоступном репозитории для CentOS RPM
RH OpenJDK 8 включает сборщик мусора в Шенандоа
RH OpenJDK 8 использует источники из RHEL / CentOS для библиотек зависимостей (zlib, giflib, libjpeg-turbo, libpng, nss) вместо (частичных) источников этих библиотек, которые включены в дерево в исходных jdk-источниках
Эллиптическая криптографическая реализация в RH OpenJDK 8 включает в себя только 3 самых популярных эллиптических кривых - NIST P-256, NIST P-384 и NIST P-521.
RH OpenJDK 8 использует набор корневых сертификатов CA от RHEL / CentOS
RH OpenJDK 8 может использовать немного более новые данные о часовых поясах - они взяты из RHEL / CentOS
RH OpenJDK 8 включает в себя весь исходный код Java внутри файла src.zip (который используется в средах разработки для просмотра кода jdk), в сборку исходной версии значительная часть этих источников не включена
RH OpenJDK 8 не включает демонстрации и образцы
RH OpenJDK 8 включает в себя набор файлов шрифтов
все собственные двоичные файлы в RH OpenJDK 8 подписаны сертификатом RH
Установщик RH OpenJDK 8 включает реализацию JavaFX
Установщик RH OpenJDK 8 включает в себя реализацию WebStart
Источник: Я работаю над сборками OpenJDK для Windows в RH.
Основное различие в AdoptOpenJDK, которое я обнаружил, заключается в том, что вы можете выбрать одну из двух разных реализаций виртуальных машин: либо HotSpot, который, как я обнаружил, имеет аналогичную медленную производительность, чем реализация Oracle, либо гораздо более эффективная реализация Eclipse Open J9 jvm, основанная на бывшем IBM SDK 8, который теперь с открытым исходным кодом. Для подтверждения у меня есть проект Eclipse Maven, который компилируется медленно в реализации JVM Oracle.
- AdoptOpenJDK Eclipse Open J9 - 1 минута
- IBM SDK 8 (коммерческая лицензия) - 1 минута
- AdoptOpenJDK OpenJDK8 с HotSpot - 7 минут
- 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