首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenJDK与Java HotspotVM

OpenJDK与Java HotspotVM
EN

Stack Overflow用户
提问于 2017-06-02 18:48:44
回答 2查看 17.3K关注 0票数 26

OpenJDK VM和Oracle仍然是两个不同的JVM吗?

我似乎找不到任何关于OpenJDK VM的官方文档。即使在OpenJDK主页上,也有一个开发HotSpot VM的HotSpot小组。

HotSpot组由参与HotSpot虚拟机的设计、实现和维护的开发人员组成。

但是,如果我在我的Windows机器上检查java -version,它就会打印出来

Java HotSpot(TM) 64位服务器VM

但是我的Ubuntu VPS

OpenJDK 64位服务器VM

如果这是两个不同的VM,它们之间的主要区别是什么?它们有不同的运行时标志集吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-03 01:59:32

Oracle HotSpot JVM基于OpenJDK HotSpot项目。因此,它们大多是相同的VM,只是Oracle有一些附加的商业特性,主要是Java飞行记录器应用程序类数据共享和协作内存管理。

对于两个VM,运行时标志几乎是相同的;请参见使用

代码语言:javascript
复制
-XX:+UnlockDiagnosticVMOptions -XX:+UnlockCommercialFeatures -XX:+PrintFlagsFinal

在JDK8u131中,唯一的区别是以下标志( OpenJDK VM中没有):

代码语言:javascript
复制
 bool EnableResourceManagementTLABCache         = true         {product}
 bool EnableSharedLookupCache                   = true         {product}
 bool FlightRecorder                            = false        {commercial}
ccstr FlightRecorderOptions                     =              {product}
 bool LogCommercialFeatures                     = false        {product}
ccstr MemoryRestriction                         = none         {commercial}
 bool ResourceManagement                        = false        {commercial}
 intx ResourceManagementSampleInterval          = -1           {commercial}
ccstr StartFlightRecording                      =              {commercial}
 bool TraceSharedLookupCache                    = false        {product}
 bool UnlockCommercialFeatures                 := true         {commercial}
 bool UseAppCDS                                 = false        {commercial}
票数 14
EN

Stack Overflow用户

发布于 2019-05-22 00:01:15

tl;dr

阿潘金接受的答案现在已经过时了。

对于最近的版本,如Java 11,Oracle产品实际上与OpenJDK项目完全相同。OpenJDK现在包括甲骨文以前的产品:Java飞行记录器Java任务控制应用程序类-数据共享ZGC

引用Oracle.com博客

因此,从Java11开始,Oracle构建和OpenJDK构建将本质上是相同的。

Oracle和OpenJDK收敛

甲骨文在过去的几年里发生了巨大的变化。

甲骨文宣布,他们打算将他们的品牌甲骨文JDK与OpenJDK合并,以实现功能对等。两者都是基于OpenJDK代码库的。

为此,以前由甲骨文、https://en.wikipedia.org/wiki/JDK_Flight_Recorderhttps://en.wikipedia.org/wiki/JDK_Mission_Control销售的商业工具现在都是开源的,并捐赠给了OpenJDK项目。请参阅上的OpenJDK站点。

甲骨文和OpenJDK联盟的其他成员提供了更多的源代码,使OpenJDK代码库完全开放,并且不受以外的许可的限制。

甲骨文有改变他们的许可证术语。甲骨文JDK品牌产品不再是生产中免费使用的产品.或者,您可以从超过六个供应商中的任何一个获得免费的OpenJDK分发,其中包括一个来自甲骨文的。有关所有细节,请参阅这篇由Java社区支柱机构https://medium.com/@javachampions/java-is-still-free-c02aef8c9e04编写的重要白皮书。

我绘制了这个流程图,以指导您选择JDK源代码。

Oracle保留修补自己品牌产品的权利,以应对紧急修复或安全漏洞。但该公司已表明,他们也打算与其他OpenJDK成员作出贡献和协调。Oracle继续拥有Java商标,并引领Java平台的未来。对于现有的长期支援(LTS)版本8和11,甲骨文已经放弃了对RedHat的管理 (IBM)。

HotSpot对OpenJ9

这里的问题是:

OpenJDK VM和Oracle仍然是两个不同的JVM吗?

正如上面所讨论的,这两个产品都是在特性均等的情况下收敛的。关于https://en.wikipedia.org/wiki/HotSpot技术,请继续阅读。

正如上面所讨论的,HotSpot是Oracle和OpenJDK中的一个组件。今天的HotSpot还结合了来自https://en.wikipedia.org/wiki/JRockit的部分。甲骨文合并了两个Java引擎中最好的引擎,并从太阳微系统BEA系统中获得了它们。

Eclipse的https://adoptopenjdk.net/项目(以前称为AdoptOpenJDK)也提供了一个OpenJDK构建,使用月食OpenJ9 (基于J9,由IBM捐赠)作为HotSpot的替代。从Adoptium网站下载时,从菜单中选择 HotSpot OpenJ9

目前,测试似乎表明,OpenJ9的启动速度非常快,而使用内存却少得多,但是HotSpot可以在持续使用的情况下运行得更快。但是对于OpenJ9来说,这还为时过早,所以你自己来调查一下最新的发展吧。

票数 49
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44335605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档