Oracle的商业Hotspot JVM相比于OpenJDK有哪些性能优势?

4

如此问题所述:

OpenJDK vs Java HotspotVM

Oracle商用的Hotspot JVM本质上就是OpenJDK,再加上几个仅限商业客户使用的功能。

然而,这些额外的功能是否真正有助于单台机器和/或小型集群,在只使用消费级现成硬件的情况下提高性能?还是只适用于具有特定组织需求和自定义硬件的大型企业系统?

我特别询问链接问题中提到的“Java Flight Recorder,应用程序类数据共享和协作内存管理”等主要商业功能。


当然可以 :) 但这并没有真正回答这些功能是否提高了性能。 - Jorn Vernee
2个回答

4

Java Flight Recorder和Application Class Data Sharing已经开源,并捐赠给了OpenJDK项目。

Oracle计划开源所有仅限商业使用的功能,或者如果没有人使用它们,则将其删除。Mark Reinhold在最近的JVM语言峰会上谈到了这个问题https://youtu.be/15s5xP5BRxk?t=10m25s。他说:

为了创造一个公平竞争的环境,我们已经开源了所有[Apllication Class-Data Sharing、Java Flight Recorder、Java Mission Control、ZGC],现在它们都是开源的。还有一些微小的商业功能,我们要么开源,要么从商业产品中删除,因为事实证明并没有很多客户实际使用它们。

引用自Oracle.com博客

从Java 11开始,因此,Oracle JDK构建和OpenJDK构建基本上是相同的。因此,如果任何这些商业功能带来了任何性能优势,现在您也可以通过使用OpenJDK获得该优势。

1
重要提示:Oracle也更改了他们的许可证。他们品牌化的Oracle JDK产品不再免费用于生产。但是,您仍然可以从超过半打供应商中获取基于OpenJDK的发行版。请参阅重要的白皮书:Java仍然是免费的 - Basil Bourque

3
Java Flight Recorder和Mission Control只是用于监控JVM的工具,不会直接影响其性能。但是,您可以使用这些工具生成的信息来更有效地调整JVM设置,从而产生间接影响。
协作内存管理旨在使JVM与在同一台机器上运行的其他应用程序更好地配合。如果操作系统开始缺少可用物理内存,则JVM可能会减少其资源利用率,例如缓存和堆空间,以减轻整个系统的负载。这可能会导致JVM性能下降的净效应。
应用程序类数据共享旨在通过有效地缓存JVM加载类时生成的类数据结构,提高使用给定应用程序启动JVM的速度。您为应用程序生成一个归档文件,然后JVM在启动时将其映射到内存中,消除了大量JAR文件的读取。该映射文件还可在多个JVM之间共享(运行相同应用程序),并减小每个JVM实例的占用空间。
正如已经说明的,所有这些功能现在都已被贡献到OpenJDK项目中。从JDK 11(下个月发布)开始,Oracle JDK和直接从OpenJDK源代码构建的JDK之间将没有功能差异。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接