Pregunta

Recibo este error cuando ejecuto o depuro mi GA / AI desde MyEclipse:

Excepción en hilo " main " java.lang.OutOfMemoryError: espacio de almacenamiento dinámico de Java

eclipse.ini tiene este aspecto:

-showsplash com.genuitec.myeclipse.product
--launcher.XXMaxPermSize 256m
-vmargs
-Xms128m
-Xmx512m
-Duser.language=en 
-XX:PermSize=128M 
-XX:MaxPermSize=256M

MyEclipse se llama así:

"C:\Program Files\MyEclipse 6.0\eclipse\eclipse.exe" -vm "C:\Program Files\MyEclipse 6.0\jre\bin\javaw.exe"  -vmargs -Xms1448M -Xmx1448M

aumentando la configuración de vm desde esto:

"C:\Program Files\MyEclipse 6.0\eclipse\eclipse.exe" -vm "C:\Program Files\MyEclipse 6.0\jre\bin\javaw.exe"  -vmargs -Xms80M -Xmx1024M

no ha tenido efecto. Así que estoy tratando de hacer que descargue el montón en un archivo, pero colocando estos:

-XX:+HeapDumpOnCtrlBreak
-XX:+HeapDumpOnOutOfMemoryError

en los argumentos del Programa no ha tenido efecto. ¿Cómo hago para que algo funcione con más análisis de uso de memoria? jstack, por ejemplo, actualmente no está disponible en plataformas Windows. Y usar SendSignal no tiene ningún efecto que pueda ver.

una captura de pantalla

¿Fue útil?

Solución

Hay varias formas de obtener volcados de almacenamiento dinámico. Aquí hay algunos que he usado:

  1. -XX: + HeapDumpOnOutOfMemoryError debería hacerte volcar si golpeas tu OOM.
  2. Conéctese con VisualVM (gratis) y use su GUI para forzar un volcado del montón
  3. Use uno de los muchos buenos perfiladores comerciales (JProfiler, YourKit, ...)
  4. Use jmap (ver abajo) para forzar un volcado de un proceso en ejecución

Si está ejecutando Java 6, jmap debería funcionar en Windows. Esto puede ser útil si desea volcar el montón y no ha alcanzado su OOM. Use el Administrador de tareas de Windows para encontrar el pid de su aplicación Java, y en una consola ejecute esto:

jmap -dump:format=b,file=c:\heap.bin <pid>

Además de VisualVM, el Eclipse Memory Analyzer (también gratuito) puede ayudarlo a analizar lo que está comiendo arriba todo el espacio una vez que tenga el volcado.

Otros consejos

-XX: + HeapDumpOnOutOfMemoryError debe colocarse en " Argumentos de VM " no " Argumentos del programa "

Puede monitorear los usos de la memoria con JConsole.

El jstat también ayudará .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top