comprensión compilador JIT y optimización

Oracle JRockit JVM sobre cómo generar, compilar, ejecutar código se introdujo.

No sólo "recuadro negro"

Desde la perspectiva del usuario, la JVM JRockit sólo un cuadro negro, que será el código de Java "convertido" al código de máquina altamente optimizada: código de Java en la JVM en un extremo, mientras que el otro extremo es un código de máquina específico de la plataforma.

Aquí Insertar imagen Descripción
Cuando se abre la tapa de la caja de negro, podrás ver las distintas medidas tomadas antes de optimizar el código para un sistema operativo específico. Antes de salir de los códigos de JVM, colocar algunas de las siguientes operaciones, y para cambiar la conversión estructura de datos.

Aquí Insertar imagen Descripción

JVM cómo compilar el código

A lo largo de la operación de una aplicación Java, JRockit JVM carreras generador de código en el fondo para ajustar automáticamente el código para hacer el mejor rendimiento. generador de código de trabajo en tres pasos, como se muestra:

Aquí Insertar imagen Descripción

JVM JIT compilador de ejecución

El primer paso es la generación de código que es (JIT), por esta compilación, no se puede en el caso del código altamente optimizado generado por las aplicaciones Java de puesta en marcha y correr por la plataforma. Aunque no es realmente parte de las normas JVM JIT, pero sigue siendo un componente esencial de Java. En teoría, siempre y cuando los métodos de Java llamada, se utilizará JIT, será compilador JIT código de bytes para el código máquina nativo, por lo que "justo a tiempo" compilador de realizar.

Después de compilar método, JRockit JVM llame directamente al método de código compilado, pero no tratar de interpretarlos, para que las aplicaciones se ejecuten más rápidamente. Sin embargo, durante la operación comienza, miles de nuevo método de ejecución, lo que hace que el inicio real JRockit JVM más lento que otras JVM. Esto es debido a la gran cantidad de métodos de compilación de arriba y de ejecución JIT. Por lo tanto, si está ejecutando la JVM JIT no es así, entonces la máquina virtual Java de inicio rápido, pero la velocidad es lenta. Si ejecuta una JVM JIT, puede empezar poco a poco, pero correr rápido. En algún momento, es posible que se necesita tiempo para iniciar JVM ya que la ejecución de la aplicación.

Optimizar el uso de todos los disponibles cuando se empieza a recopilar todos los métodos vez tendrá un impacto negativo de partida. Por lo tanto, compilador JIT no va a optimizar al máximo todos los métodos en el arranque.

subproceso de supervisión de JVM

En la segunda etapa, JRockit JVM utiliza un sofisticado, de bajo costo, el muestreo para determinar qué características son digno de optimización basado en la tecnología: "hilo de toma de muestras" despierta periódicamente, y comprobar el estado de varios subproceso de la aplicación. Se identifica el contenido de cada hilo de ejecución y grabar algo de la historia de ejecución. Todos los métodos de la información de seguimiento, y método cuando el fieltro está siendo ampliamente utilizado (en otras palabras, "calientes"), que están optimizados para el método. Por lo general, habrá muchas oportunidades para este tipo de optimización en las primeras etapas de la ejecución de la aplicación, con la velocidad de ejecución continua serán reducidos.

JVM optimizado para funcionar

En la tercera etapa, JVM creo que es el método utilizado más comúnmente "caliente" se enfoque optimizado. Esta optimización se ejecuta en segundo plano sin interferir con las aplicaciones que se están ejecutando.

Ilustra una optimización del código

Este ejemplo ilustra algunas de las formas de optimizar el código de JRockit JVM Java. Este ejemplo es bastante corto, pero se le puede dar una comprensión de cómo optimizar el código real de Java.

Tenga en cuenta que no hay discusión de una serie de métodos para optimizar las aplicaciones Java.

En la siguiente ilustración, se puede ver el código antes y después de la optimización. La diferencia puede no parecer la esencia, pero tenga en cuenta que cada vez que se ejecuta la clase A, código optimizado no tiene que correr a la clase B.

Aquí Insertar imagen Descripción

proceso de optimización

Cuando Oracle JRockit JVM código optimizado, se optimizará para óptimos varios pasos. La figura muestra el aspecto antes y después del procedimiento de optimización. En la figura siguiente, se explicó la situación JVM puede ocurrir en varias medidas para optimizar el código de aplicación de Java en sí en el nivel que puede ser experimentado en. Nótese, sin embargo, aparecen en algunas código ensamblador nivel de optimización.

Aquí Insertar imagen Descripción

material de referencia

No hay preocupación pública: los datos Porter elegibles estructuras de datos de respuesta / Java / Scala / Python / tecnología Big Data / Almacenamiento de Datos / ppt para obtener información relevante
Aquí Insertar imagen Descripción

Publicado 86 artículos originales · ganado elogios 69 · vistas 130 000 +

Supongo que te gusta

Origin blog.csdn.net/lp284558195/article/details/105220828
Recomendado
Clasificación