Saltar al contenido

java.lang.OutOfMemoryError: espacio de almacenamiento dinámico de Java

Solución:

Si desea aumentar su espacio de pila, puede usar java -Xms<initial heap size> -Xmx<maximum heap size> en la línea de comando. De forma predeterminada, los valores se basan en la versión de JRE y la configuración del sistema. Puede obtener más información sobre las opciones de VM en el sitio web de Java.

Sin embargo, recomendaría crear un perfil de su aplicación para averiguar por qué se está consumiendo el tamaño de su montón. NetBeans tiene un generador de perfiles muy bueno incluido. Creo que usa el jvisualvm bajo el capó. Con un generador de perfiles, puede intentar encontrar dónde se están creando muchos objetos, cuándo se recolectan los objetos basura y más.

1.- Sí, pero se refiere básicamente a toda la memoria que usa tu programa.

2.- Sí, ver opciones de Java VM

-Xms<size>        set initial Java heap size
-Xmx<size>        set maximum Java heap size

Es decir

java -Xmx2g asigne 2 gigabytes de RAM como máximo a su aplicación

Pero primero debería ver si no tiene una pérdida de memoria.

3.- Depende del programa. Intente detectar fugas de memoria. Esta pregunta sería muy difícil de responder. Últimamente puedes crear un perfil usando JConsole para intentar averiguar a dónde va tu memoria

Es posible que desee consultar este sitio para obtener más información sobre la memoria en la JVM: http://developer.streamezzo.com/content/learn/articles/optimization-heap-memory-usage

Me ha resultado útil usar visualgc para observar cómo se llenan las diferentes partes del modelo de memoria, para determinar qué cambiar.

Es difícil determinar qué parte de la memoria se llenó, por lo tanto, visualgc, ya que es posible que desee cambiar la parte que tiene un problema, en lugar de simplemente decir:

¡Multa! Le daré 1G de RAM a la JVM.

Trate de ser más preciso sobre lo que está haciendo, a la larga probablemente encontrará el programa mejor para ello.

Para determinar dónde puede estar la pérdida de memoria, puede usar pruebas unitarias para eso, probando cuál era la memoria antes y después de la prueba, y si hay un cambio demasiado grande, es posible que desee examinarlo, pero debe realice la comprobación mientras la prueba aún se está ejecutando.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *