Aumentar el espacio Heap en Java
- Aumente el tamaño del heap de Java mediante la línea de comandos
- Aumente el tamaño del heap de Java en un entorno de desarrollo integrado (IDE)
En Java, el espacio Heap se usa principalmente para la recolección de basura y la asignación de memoria a los objetos.
Se asigna un espacio de heap predeterminado al instalar la JVM en nuestra máquina, pero puede variar. Los siguientes puntos muestran cómo podemos aumentar el tamaño del montón usando dos formas en Java.
Aumente el tamaño del heap de Java mediante la línea de comandos
El primer método para aumentar el tamaño del heap en Java es usar la línea de comando para ejecutar los comandos que anulan el espacio de heap predeterminado de Java. Seguimos los siguientes dos pasos.
Paso 1: compruebe el tamaño máximo predeterminado del heap en Java
Antes de cambiar el tamaño del heap en Java, debemos conocer el tamaño máximo predeterminado del heap asignado a la JVM. Para ello usamos el código Runtime.getRuntime().maxMemory()
que devuelve el tamaño máximo de heap en bytes.
En el programa, obtenemos el espacio de heap máximo en bytes y lo convertimos a un formato más legible como megabytes o gigabytes. El resultado muestra que nuestro tamaño predeterminado actual es de alrededor de 1,48 GB.
Realizamos este paso para no asignar un tamaño más pequeño que el tamaño predeterminado del montón.
public class JavaExample {
public static void main(String[] args) {
double maxHeapSize = Runtime.getRuntime().maxMemory();
String sizeInReadableForm;
double kbSize = maxHeapSize / 1024;
double mbSize = kbSize / 1024;
double gbSize = mbSize / 1024;
if (gbSize > 0) {
sizeInReadableForm = gbSize + " GB";
} else if (mbSize > 0) {
sizeInReadableForm = mbSize + " MB";
} else {
sizeInReadableForm = kbSize + " KB";
}
System.out.println("Maximum Heap Size: " + sizeInReadableForm);
}
}
Producción :
Maximum Heap Size: 1.48046875 GB
Paso 2: utilice la línea de comandos para establecer el tamaño máximo de heap
Ahora que conocemos el espacio de heap máximo de Java, lo aumentamos mediante la línea de comandos.
Para obtener los comandos que podemos usar para modificar el tamaño del heap, abrimos la línea de comando y usamos el comando java -X
que devuelve una lista completa de comandos, pero solo nos interesan los siguientes dos comandos.
El comando -Xms
establece el tamaño de pila inicial y mínimo, mientras que -Xms
establece el tamaño máximo; Necesitamos usar el segundo comando.
-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size
En la línea de comandos escribimos el siguiente comando que ejecuta el programa que vemos en el primer paso.
Usamos el -Xmx2g
para aumentar el tamaño del heap en 2 GB. Observe que escribimos la unidad de almacenamiento como un solo carácter; por ejemplo, si queremos establecer un tamaño de heap de 2 GB, escribimos 2 g.
El resultado muestra que el tamaño predeterminado de alrededor de 1,4 GB ahora se modifica a 2,0 GB.
java -Xmx2g JavaExample
Producción :
Maximum Heap Size: 2.0 GB
Aumente el tamaño del heap de Java en un entorno de desarrollo integrado (IDE)
También podemos aumentar el espacio de heap de Java en un IDE si ejecutamos el programa. Aunque algunos IDE pueden tener diferentes pasos para realizar la tarea, si seguimos estos pasos, podemos modificar el tamaño del montón en la mayoría de los IDE.
-
Encontramos el elemento de menú
Run
en la barra de menú. -
En el elemento de menú
Run
, habrá una opción llamadaRun Configurations
oEdit Configurations
que tenemos que abrir. -
Se abrirá un cuadro de diálogo para mostrar detalles sobre la aplicación que queremos ejecutar con las configuraciones.
Habrá dos cuadros de entrada: uno para los argumentos del programa y el segundo para los argumentos de la VM. Si no hay un cuadro de entrada para los argumentos de la VM, podemos agregarlos usando el botón
Modify Options
. -
En el cuadro de entrada de los argumentos de la VM, escribimos el siguiente comando para ejecutar el programa con el tamaño de heap aumentado.
-Xmx2g
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn