¿Por qué Eclipse falla con Xmx, XX:MaxPermSize por encima de ciertos valores?

StackOverflow https://stackoverflow.com/questions/1804913

  •  05-07-2019
  •  | 
  •  

Pregunta

Ejecutando Eclipse 3.5.1, JDK 1.6.0_17 en WinXP SP3 de 32 bits con 3,5 gigas de RAM.
Soy consciente de lo conocido Mejores prácticas de eclipse, todavía estoy tratando de descubrir eclipse.ini.

Esto lanzará: -Xmx588m y esto no lo hará: -Xmx589m.
Lo mismo con -XX:MaxPermSize.Cualquier cosa por encima -XX:MaxPermSize=140m no se inicia.
La pantalla de la muerte es similar a este (tomado de aquí).

¿Alguna idea sobre por qué podría estar sucediendo esto?

¿Fue útil?

Solución

Consulte este error de eclipse .

El problema general es que jvm requiere un bloque contiguo de memoria para esto. En Windows, el proceso obtendrá 2 Gigs, otras bibliotecas que se cargan se colocan en diferentes áreas del espacio de memoria. Si una biblioteca se coloca en el medio, básicamente se corta en la mitad del tamaño que puede usar.

El iniciador de Eclipse cargará algunos archivos DLL del sistema para hacer gráficos, y en particular, user32.dll puede provocar que se carguen bibliotecas de terceros dependiendo de lo que esté instalado en su máquina (visto aquí ).

Para lograr límites de memoria más altos, puede forzar que jvm se bifurque en un proceso separado desde el iniciador de eclipse. El proceso jvm no cargará estas bibliotecas adicionales hasta que vm haya inicializado su memoria. Haga esto utilizando un argumento -vm que apunte a un javaw.exe:

eclipse -vm C:\jdk\jre\bin\javaw.exe

Otros consejos

Consulte también este error 203325 para obtener sugerencias sobre cómo monitoreando cómo se usa su memoria, con herramientas como:

  • JConsole
  • Herramienta de monitor de memoria (herramienta de eclipse)

Nota: como comentó aquí :

  

Si no declara el límite máximo de memoria, se deja al administrador de memoria del sistema operativo.

     

El -Xmx <size> es útil para programar un dispositivo pequeño como J2ME.
  Si está programando para un dispositivo pequeño que tiene limitaciones de memoria, puede usar la propiedad -Xmx JVM para emular el dispositivo pequeño, aunque esté usando una PC.

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