viernes, 12 de febrero de 2016

OPTIMIZACION DE LA MAQUINA VIRTUAL DE JAVA I

Las aplicaciones Java, se ejecutan en la Memoria Virtual de Java, pero alguna vez se ha preguntado que tanto conoce acerca de la tecnología de la Memoria Virtual de Java? Este artículo, el primero de esta serie, es un breve resumen que explica la manera de funcionar de la Máquina Virtual de Java que en lo sucesivo denominaremos JVM, así como los pros y los contras de la misma, el garbage collector y una pequeña muestra de los algoritmos que se utilizan dentro del garbage collector.

Si usted está involucrado en equipos de optimización de aplicaciones Java, es ingeniero de pruebas de rendimiento o programador, sin duda ha experimentado esa sensación especial cuando se encuentra la luz al final del camino en un proceso de pensamiento cuando se encuentra frente a un problema complejo de resolver. Personalmente me encanta la sensación de aprender algo nuevo. Durante el trabajo y la experiencia que he tenido con tecnologías como la JVM, sobre todo con el garbage collector y la optimización de ésta misma, espero poder compartir algunos temas que considero que pueden ser de gran utilidad a alguien más.

¿Qué es una JVM?

De manera sencilla, la JVM es un módulo de software que ejecuta una aplicación Java en modo de código y traduce ese código en instrucciones y procesos entendibles para hardware y ciertas instrucciones propias del sistema operativo.
De tal forma que al hacerlo, la JVM permite que los programas o aplicaciones Java puedan ser ejecutados en distintos entornos (lo que se conoce como portabilidad del software) sin que se requiera algún cambio en el código de la aplicación original. La portabilidad de Java es la clave de su popularidad como un lenguaje para aplicaciones empresariales, donde los desarrolladores no tienen que volver a escribir el código de aplicación para cada plataforma, ya que la JVM se encarga de la traducción y optimización.
La JVM también se encarga de la gestión dinámica de los recursos necesarios para ejecutar las aplicaciones Java. Esto significa que se encarga de la asignación y reasignación de memoria, el mantenimiento de un modelo de hilos consistente en cada plataforma y la organización de instrucciones necesarias. La JVM libera al programador de hacer el seguimiento de las referencias entre objetos y saber el tiempo que éstos deben mantenerse en el sistema. También lo libera de tener que decidir exactamente cuándo emitir instrucciones explicitas para liberar la memoria (un punto de dolor en todos los lenguajes de programación no dinámicos como C).
Se podría pensar en la JVM como un sistema operativo especializado para Java, su función es gestionar el entorno de ejecución de las aplicaciones Java. Una JVM básicamente es un entorno de ejecución virtual que actúa como una máquina para obtener instrucciones de código, mientras que la asignación de tareas de ejecución y la realización de operaciones de memoria a través de la interacción con las capas subyacentes.







2 comentarios:

  1. Muy interesante!!!. Realmente la configuración de la JVM es un problema que nos solemos encontrar en las pruebas de rendimiento de manera habitual. Conocer sus fundamentos y cómo funcina es importante para proporcionar valor añadido a los resultados.

    ResponderEliminar
  2. Asi es y conocer sobre todo el impacto que tiene ésta en el comportamiento de los sistemas es concluyente para brindar un mejor servicio, si hablamos de pruebas de rendimiento!.

    ResponderEliminar