Saltar al contenido

¿Diferencia entre JVM y HotSpot?

Solución:

La definición de qué es exactamente una máquina virtual Java se establece en la Especificación de la máquina virtual Java.

La JVM es por definición una máquina virtual, es decir, una máquina de software que simula lo que hace una máquina real. Como una máquina real, tiene un conjunto de instrucciones, una arquitectura de computadora virtual y un modelo de ejecución. Es capaz de ejecutar código escrito con este conjunto de instrucciones virtuales, de forma muy similar a como una máquina real puede ejecutar código de máquina.

HotSpot es una implementación del concepto JVM. Originalmente fue desarrollado por Sun y ahora es propiedad de Oracle. Existen otras implementaciones de la especificación JVM, como JRockit, IBM J9, entre muchas otras.

Consulte la lista de implementaciones de máquinas virtuales Java

OpenJDK es un proyecto en el que se desarrolla una implementación de código abierto de HotSpot (y muchas otras piezas del JDK, por ejemplo, compilador, API, herramientas, etc.).

OpenJDK (Open Java Development Kit) es una implementación gratuita y de código abierto de Java Platform, Standard Edition (Java SE). El openjdk es un proyecto iniciado por Sun Microsystems, hoy en día muchas empresas y la comunidad se preocupan por construir un Java Development Kit absolutamente en código abierto. Según documentación oficial.

OpenJDK es una implementación de código abierto de las especificaciones de Java Platform, Standard Edition (Java SE). En mayo de 2007, Sun lanzó una versión de Java Development Kit (JDK) totalmente compilable para Java SE a la comunidad OpenJDK como software libre bajo la licencia pública general GNU versión dos (GPLv2). Sun anunció la Junta de Gobierno Interina de la comunidad OpenJDK. Sun también anunció que las implementaciones basadas en OpenJDK pueden utilizar el kit de compatibilidad técnica (JCK) de Java SE 6 para establecer la compatibilidad con la especificación de Java SE 6.

los Proyecto OpenJDK consta de varios componentes: HotSpot (la máquina virtual), la biblioteca de clases de Java y el compilador javac Java. Para obtener más información, visite su sitio.

La JVM actual proporcionada por Sun / Oracle se llama HotSpot porque busca puntos calientes de uso en el código (lugares donde el código se usa más intensamente) para la optimización “justo a tiempo”. De la wikipedia, HotSpot, lanzado como “Java HotSpot Performance Engine” es una máquina virtual Java para equipos de escritorio y servidores, mantenida y distribuida por Oracle Corporation.

Nota: AdoptOpenJDK ha cambiado su nombre a Adoptium después de mudarse a la Fundación Eclipse a finales de 2020-06.


¿Diferencia entre JVM y HotSpot?

Una máquina virtual Java (JVM) es una computadora imaginaria que nunca se ha construido físicamente como hardware. Una JVM ejecuta programas compilados en su conjunto de instrucciones imaginarias escritas en el almacenamiento como una representación intermedia conocida como código de bytes.

En tiempo de ejecución, el código de bytes debe traducirse del conjunto de instrucciones imaginarias al conjunto de instrucciones real de la CPU de la máquina host. Esto lo puede hacer un intérprete sobre la marcha. O el código de bytes se puede compilar y almacenar en caché por completo, para que se ejecute más rápido que a través del intérprete, en un proceso conocido como compilación Just-In-Time (JIT).

A lo largo de las décadas, ha habido muchas implementaciones de JVM. La mayoría se han alejado.

HotSpot es una implementación de la tecnología JIT que comienza con la ejecución interpretada y observa el rendimiento real de la aplicación. Luego, se seleccionan partes de la aplicación para que se compilen completamente como código nativo y se almacenen en caché, para una ejecución mucho más rápida. HotSpot fue desarrollado en Sun como un producto comercial. Después de adquirir Sun, Oracle desarrolló aún más HotSpot al combinar partes importantes de su producto competidor, JRockit. HotSpot ahora es de código abierto a través de OpenJDK proyecto, disponible de forma gratuita.

Otra implementación similar en OpenJ9, desarrollado por IBM y ahora de código abierto a través de Eclipse Foundation y disponible de forma gratuita. Algunas distribuciones de JVM creadas en OpenJDK reemplazan HotSpot con OpenJ9 mientras siguen usando el resto de OpenJDK, como las bibliotecas de clases Java SE. Por ejemplo, las distribuciones prediseñadas disponibles en AdoptOpenJDK proporcione su elección de HotSpot o OpenJ9 en algún hardware.

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

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

¿Qué es exactamente HotSpot y cómo se relaciona con JVM y OpenJDK? ¿Es una biblioteca? ¿Qué hace exactamente?

  • HotSpot es una implementación de la parte de una JVM que interpreta y / o compila el código de bytes de Java para ser ejecutado en la CPU del host.
  • OpenJ9 es una alternativa.

OpenJ9 es generalmente conocido por un inicio mucho más rápido y un uso de memoria mucho menor inicialmente, mientras que HotSpot puede ejecutarse de manera más eficiente en general para aplicaciones de larga duración. Ambos son bien considerados, gastados y están disponibles con distribuciones de OpenJDK.

OpenJDK es un proyecto de código abierto que implementa completamente las especificaciones de Java, JSR y JEP que definen la plataforma Java. Cada implementación de JVM que conozco hoy en día se basa total o principalmente en el código base de OpenJDK y utiliza tecnología HotSpot o OpenJ9.

Además de la JVM, OpenJDK también proporciona una implementación en código fuente para todas las clases requeridas por las especificaciones de Java SE, como java.lang, java.util, java.timey otros paquetes.

Además, ¿cuál es la diferencia entre OpenJDK y HotSpot?

El código fuente de HotSpot está alojado, mantenido y desarrollado como parte de la OpenJDK proyecto. La alternativa, OpenJ9, está alojado, mantenido y desarrollado en el Fundación Eclipse, mientras reemplaza HotSpot en algunas distribuciones de OpenJDK.

Algunas distribuciones de tecnología Java optan por enviarse con HotSpot. Algunas distribuciones optan por sustituir la parte del OpenJDK base de código que es HotSpot con la alternativa, OpenJ9.

Aquí hay un gráfico de diagrama de flujo para ayudarlo a elegir un proveedor para una distribución de la plataforma Java.

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

Motivaciones para elegir un proveedor de Java

¡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 *