La gente ya mencionó lo que es JIT.
en columna de reposición (OSR)
Cuando la JVM ejecuta un método de Java, comprueba la suma del número de veces que el método ha sido llamado, y el número de veces que los bucles en el método se ha bifurcado y decide si el método es elegible o no para la compilación. Si es así, el método está en cola para la compilación. Este tipo de compilación no tiene un nombre oficial, pero a menudo se llama estándar compilación.
Pero, ¿y si el método tiene un bucle realmente largo, o uno que nunca sale, y proporciona a todos la lógica del programa? En ese caso, la JVM necesita compilar el bucle sin esperar para una invocación al método.Por lo tanto, cada vez que el ciclo completa una ejecución, el contador de bifurcación se incrementa e inspecciona. Si el contador de bifurcación ha excedido su umbral individual , entonces el bucle (y no todo el método) pasa a ser elegible para la compilación . Este tipo de recopilación es llamada en columna de reposición (OSR), porque incluso si el bucle se compila, eso no es suficiente: la JVM tiene que tener la capacidad de iniciar la ejecución de la versión compilada de la bucle mientras el bucle todavía se está ejecutando. Cuando el código para el ciclo ha terminado de compilarse, la JVM reemplaza el código (en la pila), y la siguiente iteración de el ciclo ejecutará la versión compilada mucho más rápida del código.
Ni google ni wikipedia pueden decirme qué es OSR. –
@ MaurícioLinhares google me dijo que está en reemplazo de la pila. –
Este blog es otro buen recurso ... http://www.azulsystems.com/blog/cliff/2011-11-22-what-the-heck-is-osr-and-why-is-it-bad- o-bueno –