Código fuente de Java representa un lenguaje de programación portátil y flexible para los negocios, Web y desarrollo de aplicaciones de mano. Esta ventaja de la portabilidad proviene en gran parte gracias a la máquina virtual de Java. Sin embargo, la JVM también representa una herramienta que los programadores deben administrar y mantener con el fin de obtener el máximo rendimiento de las aplicaciones Java. En particular , el consumo de memoria y la asignación del montón en la JVM son detalles que los programadores harían bien en considerar . Java Virtual Machine
Todo el código Java se ejecuta en la parte superior de la máquina virtual de Java. Código fuente Java se compila por primera vez en Java " bytecode ", que la JVM se ejecuta mediante la traducción del bytecode en instrucciones legibles por máquina . Para llevar a cabo este proceso y permite la portabilidad de Java que goza, la JVM debe imitar a un sistema informático , completar con estructuras de memoria y los datos , por lo que el código fuente se puede almacenar y recuperar datos y comandos . Una de estas estructuras de datos importantes es el montón .
La JVM Heap
En programación , el código utiliza la memoria a través de dos estructuras internas diferentes inherentes al sistema informático . La " pila " contiene todo el código que se ejecuta actualmente para las funciones y comandos , así como cualquier variables locales declaradas . El "montón ", por otra parte , contiene los datos a largo plazo que un programa puede asignar para datos como objetos complejos . Desde Java representa un lenguaje de programación orientado a objetos completamente , el montón es esencial . Sin embargo, desde Java se ejecuta en la máquina virtual, la propia máquina virtual debe contener un montón. A través de ella , los programadores pueden declarar y crear instancias de objetos y variables estáticas.
JVM Memoria y física
Sin embargo, la JVM es una pieza de software, y como tal, debe residir en la memoria RAM física de la computadora host. En esencia, la pila de JVM reside en una máquina virtual, que a su vez se ejecuta en la memoria de la máquina y utiliza estructuras de datos de esa máquina (como la pila) . En consecuencia , el montón de la JVM está limitada por las restricciones físicas de la computadora reside en la JVM . Esto incluye la ejecución simultánea de software y el sistema de servicios públicos. Por lo tanto , la pila de JVM tiene la restricción adicional de la adhesión no sólo a la memoria física , sino también competir con el uso de memoria de otros programas . Esto afecta a los atributos básicos del montón , como el tamaño potencial.
JVM Tamaño de pila
Para gestionar tamaño de la pila , el programador puede cambiar los atributos de tamaño de almacenamiento dinámico inicial y máximo de la instancia de ejecución de la JVM a través de los " - Xms " y banderas " - Xmx ", respectivamente . ¿Qué tan grande el montón puede crecer depende de las limitaciones del sistema operativo y los programas en ejecución . Una regla de oro es que el tamaño de la pila debe ser lo suficientemente grande como para evitar el intercambio de datos de la pila en el disco duro . Y el tamaño mínimo y máximo no debe ser mayor que la memoria disponible en el sistema host.