En primer lugar, tengo una caja con 8gb de ram, así que dudo que la memoria total sea el problema. Esta aplicación funciona bien en máquinas con 6gb o menos.
Estoy tratando de reservar 3GB de espacio utilizando -Xmx3G bajo "VM Arguments" en Configuraciones de ejecución en Eclipse.
Cada vez que intento reservar más de 1500mb, obtengo este error "Se produjo un error durante la inicialización de la VM; no se pudo reservar suficiente espacio para el montón de objetos" utilizando -Xmx3G
¿Qué está pasando aquí?
Esto no es un problema específico de Eclipse; es un problema general de Java-en-Windows. Se debe a la forma en que la JVM asigna la memoria en insiste en asignar un trozo contiguo de memoria, que a menudo que a menudo Windows no puede proporcionar, incluso si hay suficientes trozos separados para satisfacer la solicitud de asignación. Hay utilidades que intentan ayudar a Windows a "desfragmentar" su memoria, que, en teoría, ayudar a esta situación, pero I & # 39; he probado realmente ellos en serio, así que no puede hablar de su eficacia. Una cosa que he oído a veces que podría ayudar es para reiniciar Windows y, antes de iniciar cualquier otra aplicación, lanzar la aplicación Java que necesita la gran parte de la memoria. Si tiene suerte, Windows no habrá fragmentado todavía su espacio de memoria todavía y Java obtendrá el bloque contiguo que pide.
En algún lugar de las interwebs hay explicaciones más técnicas y análisis de esta cuestión, pero no tengo ninguna referencia a mano.
Sin embargo, he encontrado esto, que parece útil: https://stackoverflow.com/a/497757/639520
Asegúrate de que Eclipse está ejecutando realmente la misma JVM que crees que está ejecutando. Si utiliza java en su navegador web alguna vez, es probable que tenga una versión de 32 bits flotando por ahí también que podría estar tomando precedencia si se instaló o actualizó últimamente.
Para estar absolutamente seguro, recomiendo añadir estas dos líneas a su archivo eclipse.ini
en la parte superior:
-vm
C:/Java/jdk1.6.0_27/bin
...donde en mi máquina C:/Java/jdk1.6.0_27/bin
donde se encuentra la JVM que sé que es de 64 bits. Asegúrese de tener la carpeta bin
allí.
(Como un bono, en Windows 7, esto también le permite realmente "anclar la pestaña" por lo que tuve que hacer esto para mi propio uso)