AdoptOpenJDK 和 Red Hat OpenJDK 之间的技术差异 Windows

Technical difference between AdoptOpenJDK and Red Hat OpenJDK for Windows

Red hat 提供 Red Hat OpenJDK 8 for Windows for development use only (registration required). AdoptOpenJDK provides OpenJDK 8 builds for Windows (AdoptOpenJDK 8 Windows) 没有任何限制。

使用相同的 version/update(例如 8u181)时,这两个包之间是否存在任何技术差异?使用 "technical difference" 我的意思是缺少 classes/functions、不同的默认 JVM 设置等

Red Hat 在与 AdoptOpenJDK 和任何其他开源 OpenJDK 8 构建完全相同的许可下提供 OpenJDK 8 Windows 二进制文件 - 在 GNU GPL v. 2 with classpath exception 下。 "development use" 的所有限制仅与可从 Red Hat 购买的订阅(支持)相关。

Red Hat OpenJDK 8 for Windows 和其他提到的构建之间的技术差异非常小,因为所有这些构建都通过了 TCK。一般来说,Red Hat 构建试图在行为上尽可能接近 RHEL 和 CentOS 中包含的 OpenJDK 8 包。

差异:

  1. RH OpenJDK 8 构建是从 RHEL/CentOS 上使用的 OpenJDK RPM 包的源代码完成的。这些来源通常非常接近 upstream sources, but contain some changes (see points below) and may include some bugfixes (RPM patches) ahead of time. RHEL/CentOS changes can be tracked in a publicly-available repo for CentOS RPM

  2. RH OpenJDK 8 包括 Shenandoah garbage collector

  3. RH OpenJDK 8 使用来自 RHEL/CentOS 的资源作为依赖库(zlib、giflib、libjpeg-turbo、libpng、nssnss is not used anymore)) 而不是这些库的(部分)源代码包含在上游的树中 jdk sources

  4. RH OpenJDK 8 中的 Elliptic Crypto 实现仅包含 3 个最流行的 elliptic curves - NIST P-256、NIST P-384 和 NIST P-521。

  5. RH OpenJDK 8 使用来自 RHEL/CentOS

  6. 的根 CA 证书集
  7. RH OpenJDK 8 可能使用稍新的时区数据 - 它取自 RHEL/CentOS

  8. RH OpenJDK 8 在上游构建中包含 src.zip 文件中的所有 Java 源代码(IDE 使用该文件允许浏览 jdk 代码)这些来源的很大一部分未包括在内

  9. RH OpenJDK 8 不包含演示和示例

  10. RH OpenJDK 8 包含一组字体文件

  11. RH OpenJDK 8 中的所有本机二进制文件均由 RH 证书签名

  12. RH OpenJDK 8 安装程序包含 JavaFX implementation

  13. RH OpenJDK 8 安装程序包含 WebStart implementation

资料来源:我在 RH 的 OpenJDK Windows 上工作。

我发现 AdoptOpenJDK 的主要区别是您可以从 2 种不同的 VM 实现中进行选择,我发现 HotSpot 的性能与 Oracle 的实现相似,或者效率更高的 Eclipse Open J9 jvm基于现在开源的以前的 IBM SDK 8 的实现。 确认我有一个 Eclipse Maven 项目,它在 Oracle 的 JVM 实现中编译速度很慢。

  1. AdoptOpenJDK Eclipse 打开 J9 - 1 分钟
  2. IBM SDK 8(商业许可证)- 1 分钟
  3. AdoptOpenJDK 使用 HotSpot 打开JDK8 - 7 分钟
  4. Oracle Java HotSpot(TM)(内部版本 1.8。0_181-b13)- 11 分钟

所以我认为开源 Oracle 的 JVM 比 Oracle 的商业 JVM 提供了一些更好的结果,但是开源 IBM 的 JDK 和 Open J9 更好,编译时间的性能快了 1 个数量级(对我来说项目)。

Redhat 提供的 openjdk 发行版无需订阅即可在生产中使用,这看起来并不正确。

https://developers.redhat.com/products/openjdk/download/ 所以这个页面正确地说它仅供开发使用。 资料来源:https://access.redhat.com/solutions/3116731