Pregunta

Cuando se diferencian implementaciones de JVM (excepto licencias)? ¿Cada JVM implementar Tipo de borrado para el manejo genérico?

¿Dónde están las diferencias entre:

  • JRockit
  • IBM JVM
  • JVM de Sun
  • Open JDK
  • Blackdown
  • Kaffe

..... Ofertas una de ellas con cola-Call-optimización?

¿Fue útil?

Solución

implementaciones de JVM pueden diferir en la forma de aplicar la compilación JIT, optimizaciones, recolección de basura, las plataformas soportadas, versión de Java apoyada, etc. Todos ellos deben cumplir con un conjunto de características y comportamientos para que se ejecute el Java bytecodes correctamente.

Como se ha señalado, la principal diferencia tiende a estar en la concesión de licencias. Otras diferencias no técnicos tienden a estar en opciones libres / soporte de pago, la integración con otras tecnologías (por lo general los servidores J2EE), y el acceso al código fuente.

Nota:. Mientras que un servidor J2EE se ejecuta en la JVM, algunos servidores han integrado herramientas para el seguimiento, analizar y ajustar el rendimiento JVM

En cuanto a las diferencias técnicas, ellos han crecido menos significativa en los últimos años. Había una vez, la IBM y JRockit JVM tenían un rendimiento muy superior a la referencia de aplicación solar. Esto se debió a diferencias significativas en los tipos de optimizaciones de tiempo de ejecución, las diferencias en la recolección de basura, y las diferencias en código nativo (y la cantidad de código nativo diversas clases de usos). Estas diferencias de rendimiento no son tan importantes más.

Algunas JVM también incluyen o se integran con herramientas de diagnóstico y monitoreo. JRockit incluye un conjunto de herramientas para supervisar el rendimiento de su máquina virtual Java. Sun proporciona diversas herramientas basadas en JMX con funciones superpuestas a hacer lo mismo. IBM Websphere érase una vez incluido un conjunto similar de herramientas para su servidor de aplicaciones J2EE entera (no sé si todavía lo hacen, pero yo asumiría que sigue siendo cierto) ...

Algunos de la fuente abierta de JVM tienden a tener un poco de rendimiento más lento, ya que se han reconstruido a partir de cero. Como tal, tienen un poco más para ponerse al día. Que yo sepa hace aproximadamente 2 años, Blackdown fue significativamente más lenta (1,5x-2x?) Que la JVM de Sun. También fue un poco por detrás de las versiones compatibles de Java.

Otros consejos

Tipo de borrado es una compilador función y como se tales JVM independiente.

Las cosas como el tipo de borrado se realizan por el compilador para ser compatible con JVM mayores. La mayoría de las JVM deben apoyar todas las funciones que necesita, pero algunos pueden ser más optimizado que otros. Supongo que la JVM de Sun es probablemente la más rápida.

compilación JIT es una cosa que algunos JVM:. S no tienen

Si la JVM dice ser de Java que debe pasar la TCK, proporcionando una gran cantidad de existencias funcitonaltiy.

Las diferencias están en lugares no básicos, como la recolección de basura, el jconsole / VisualVM en la JVM de Sun, la compilación previa, etc.


Aclaración: TCK es el conjunto de pruebas de que una máquina virtual tiene que pasar el fin de ser compatible con Java oficialmente

.

Otra diferencia entre las JVM es el comportamiento de la API no documentada. (Por ejemplo com.sun.xxx) Por ejemplo, la JVM de Sun y JVM de IBM tanto tienen un comportamiento ligeramente diferente en el manejo de señales. (JVM de IBM no permite la aplicación controlar la señal de "INT" en ciertos casos.)

JVM es como una máquina virtual que funciona para cargar la clase y Bytcode varifier, ejecutar el código. mientras Applocaion Interfaz de programación es colección de paquetes. y paquetes son colección de clase. ejecutar programa Java JVM donde se instala y funciona.

optimización de llamada aún no es compatible con Java. John Rose lidera los esfuerzos para incluir esto en una versión futura, y se ha descrito la , y algunos de las cuestiones involucrados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top