OpenJDK vs Java HotspotVM

问题描述:

OpenJDK VM和Oracle Hotspot VM仍然是两个不同的JVM吗?OpenJDK vs Java HotspotVM

我似乎无法找到任何有关OpenJDK VM的官方文档。即使在OpenJDK主页中也有一个开发HotSpot VM的HotSpot Group。

热点组是由参与设计,实施开发和HotSpot虚拟机的保养的

但是如果我检查我的Windows机器上的Java的版本它打印出

的HotSpot的Java(TM)64位服务器VM

但在我的Ubuntu VPS

OpenJDK的64位服务器VM

如果这是两个不同的虚拟机是什么它们之间的主要区别是什么?他们有不同的运行时标志集?

+1

的可能的复制( https://*.com/questions/16568253/difference-between-jvm-and-hotspot) – Dmitriy

+1

这个问题在2014年得到了回答。 最新的答案是从2015年开始,它指向所有JVM实现的*列表。在wikipedia中,它表示OpenJDK(JDK)包含HotSpot虚拟机。但我正在寻找有些官方文件或文章或除*之外的任何内容。 – ataurenis

+2

Openjdk是Java的开源基础。 Oracle Java被openjdk更名为更多功能。 –

Oracle HotSpot JVM基于OpenJDK HotSpot项目。所以,他们大多是相同的虚拟机,除了Oracle JVM有一些额外的商业功能,主要是,Java Flight Recorder,Application Class Data Sharing和合作内存管理。

两个VM的运行时标志几乎相同;看到使用的完整列表

-XX:+UnlockDiagnosticVMOptions -XX:+UnlockCommercialFeatures -XX:+PrintFlagsFinal 

从JDK 8u131的,唯一不同的是在下面的标志(在OpenJDK的VM缺席):[?JVM和热点之间的不同]

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} 
+1

如果你在谈论商业功能和打印标志不会添加make unlockcommercialfeatures有意义吗? – the8472

+0

@ the8472好点。谢谢。 – apangin