Saltar al contenido

OpenJDK frente a Java HotspotVM

Poseemos la mejor solución que descubrimos por todo internet. Deseamos que te sea útil y si quieres aportar algo que nos pueda ayudar a crecer puedes hacerlo..

Solución:

tl; dr

La respuesta aceptada de apangin ahora está desactualizada.

Para versiones recientes como Java 11, el Oracle JDK producto es virtualmente idéntico al OpenJDK proyecto. OpenJDK ahora incluye las ofertas anteriores de Oracle: Java Flight Recorder, Java Mission Control, Application Class-Data Sharing y ZGC.

Para citar el blog de Oracle.com:

Desde Java 11 en adelante, por lo tanto, Oracle JDK construye y OpenJDK Las compilaciones serán esencialmente idénticas.

Oracle JDK Y OpenJDK convergente

Oracle ha realizado cambios drásticos en los últimos años.

Oracle declaró su intención de converger su marca Oracle JDK con OpenJDK a la paridad de características. Ambos se basan en el código base de OpenJDK.

Con ese fin, las herramientas anteriormente comerciales vendidas por Oracle, Grabador de vuelo y Control de misión ahora son de código abierto y donados al proyecto OpenJDK. Vea esto y esto en el sitio de OpenJDK.

Oracle y otros miembros del consorcio OpenJDK han contribuido con más código fuente para hacer que la base del código OpenJDK sea completamente de código abierto y libre de licencias que no sean la excepción de vinculación GNU GPL +.

Oracle ha cambiado sus términos de licencia. El Oracle JDK El producto de marca ya no es gratuito para su uso en la producción. Alternativamente, puede obtener una distribución gratuita de OpenJDK de cualquiera de los más de media docena de proveedores, incluido uno de Oracle. Para obtener todos los detalles, consulte este documento técnico fundamental escrito por los pilares de la comunidad Java, Java sigue siendo gratuito.

Dibujé este diagrama de flujo para guiarlo en la selección de una fuente JDK.

Diagrama de flujo que lo guía en la elección de un proveedor para una implementación de Java 11

Oracle se reserva el derecho de parchear su propio producto de marca para una solución urgente o una vulnerabilidad de seguridad. Pero la compañía ha manifestado su intención de contribuir y coordinarse también con los otros miembros de OpenJDK. Oracle sigue siendo propietario de las marcas registradas de Java y lidera el futuro de la plataforma Java. Para las versiones 8 y 11 de Soporte a largo plazo (LTS) existentes, Oracle ha cedido la administración a RedHat (IBM).

Motivaciones para elegir un proveedor de Java

HotSpot versus OpenJ9

La pregunta aquí pregunta:

¿Son OpenJDK VM y Oracle Hotspot VM todavía dos JVM diferentes?

Como se mencionó anteriormente, los dos productos convergen en la paridad de características. Con respecto a HotSpot tecnología, sigue leyendo.

HotSpot es un componente dentro de Oracle JDK y OpenJDK, como se discutió anteriormente. El HotSpot de hoy también combina piezas de JRockit. Oracle fusionó lo mejor de ambos motores Java, habiéndolos adquirido de Sun Microsystems y BEA Systems.

El Adoptium proyecto (anteriormente conocido como AdoptOpenJDK) de la Fundación Eclipse también proporciona una compilación de OpenJDK utilizando Eclipse OpenJ9 (basado en J9, donada por IBM) como alternativa a HotSpot. Al descargar desde el sitio web de Adoptium, elige ya sea HotSpot o OpenJ9 de un menú.

Actualmente, las pruebas parecen mostrar que OpenJ9 es dramáticamente más rápido de iniciar mientras usa mucha menos memoria, pero HotSpot puede ejecutarse más rápido con un uso sostenido. Pero estos son todavía los primeros días para OpenJ9, así que investiga por ti mismo los últimos desarrollos.

Diagrama que muestra el historial de la fusión de HotSpot y JRockit, y OpenJ9, ambos disponibles en Adoptium

Oracle HotSpot JVM se basa en el proyecto OpenJDK HotSpot. Entonces, son en su mayoría la misma VM, excepto que Oracle JVM tiene algunas características comerciales adicionales, principalmente, Java Flight Recorder, Application Class Data Sharing y Cooperative Memory Management.

Los indicadores de tiempo de ejecución son casi los mismos para ambas máquinas virtuales; ver la lista completa usando

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

A partir de JDK 8u131, la única diferencia está en las siguientes banderas (ausentes en 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

Aquí tienes las comentarios y puntuaciones

Recuerda que puedes dar difusión a este tutorial si si solucionó tu problema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *