OpenJDK против Java HotspotVM
являются ли OpenJDK VM и Oracle Hotspot VM все еще двумя разными JVMs?
Я не могу найти какой-либо официальной документации о чем-либо об OpenJDK VM. Даже на домашней странице OpenJDK есть группа HotSpot, которая разрабатывает HotSpot VM.
группа HotSpot состоит из разработчиков, участвующих в разработке, реализации и обслуживании виртуальной машины HotSpot
однако, если я проверю java-версию на своей машине Windows он выводит
Java HotSpot (TM) 64-разрядный сервер VM
но на моем Ubuntu VPS
OpenJDK 64-разрядный сервер VM
Если это две разные ЗИС, каковы основные различия между ними? У них разные наборы флагов времени выполнения?
1 ответов
Oracle HotSpot JVM основан на проекте OpenJDK HotSpot. Таким образом, они в основном те же VM, за исключением того, что Oracle JVM имеет несколько дополнительных коммерческих функций, в основном,Java Flight Recorder, Совместное Использование Данных Класса Приложений и совместное управление памятью.
флаги времени выполнения почти одинаковы для обеих виртуальных машин; см. Полный список с помощью
-XX:+UnlockDiagnosticVMOptions -XX:+UnlockCommercialFeatures -XX:+PrintFlagsFinal
начиная с JDK 8u131, единственное различие заключается в следующих флагах (отсутствует в 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}