2017-06-02 11 views
6

OpenJDK VMとOracle Hotspot VMは依然として2つの異なるJVMですか?OpenJDKとJava HotspotVM

OpenJDK VMについて何か公式な文書が見つかりません。 OpenJDKホームページでも、HotSpot VMを開発するHotSpot Groupがあります。

HotSpotのグループは、設計に関わる開発者で構成される実装、と私は私のWindowsマシン上でJava -versionをチェックした場合のHotSpot仮想マシンのmaintanence

は、しかし、それは

をプリントアウトされます

は、Java HotSpot(TM)64ビットサーバーVM

しかし、私のUbuntu VPS上

OpenJDKの64ビットサーバーVM

これら2つの異なるVMている場合は、それらの間の主な違いは何ですか?彼らは異なるランタイムフラグセットを持っていますか?

+1

の可能な重複([JVMホットスポットの違い?] https://stackoverflow.com/questions/16568253/difference-between-jvm-and-hotspot) – Dmitriy

+1

この質問は2014年に回答されました。 最新の回答は2015年から、すべてのJVM実装のwikipediaリストを指しています。ウィキペディアでは、(JDK)としてのOpenJDKにはHotSpot仮想マシンが含まれています。しかし、私は幾分公式な文書や記事、またはウィキペディアを除く何かを探しています。 – ataurenis

+2

OpenjdkはJavaのオープンソース基盤です。 Oracle Javaはopenjdkの機能を拡張したものです。 –

答えて

4

Oracle HotSpot JVMは、OpenJDK HotSpotプロジェクトをベースにしています。したがって、Oracle VMはいくつかの商用機能(主にJava Flight RecorderApplication Class Data SharingおよびCooperative Memory Management)が追加されていることを除いて、ほとんど同じVMです。

ランタイムフラグは、両方のVMでほぼ同じです。 JDK 8u131のよう

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

を使用して完全なリストを参照して、唯一の違いは、(OpenJDKのVMには存在しない)次のフラグである:

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

商用機能と印刷フラグについて話しているのであれば、unlockcommercialfeaturesを意味を持たせることはできません。 – the8472

+0

@ the8472良い点があります。ありがとう。 – apangin

関連する問題