En una máquina Windows de 64 bits con 12 GB de RAM y 33 GB de memoria virtual (por administrador de tareas), puedo ejecutar Java (1.6.0_03-b05) con una configuración imposible -Xmx de 3.5TB pero falla con 35TB. ¿Cuál es la lógica detrás de cuándo funciona y cuándo falla? El error en 35TB parece implicar que está tratando de reservar espacio al inicio. ¿Por qué haría eso para -Xmx (a diferencia de -Xms)?¿Por qué puedo configurar -Xmx en un valor mayor que la memoria física y virtual en la máquina tanto en Windows como en Solaris?
C:\temp>java -Xmx3500g ostest os.arch=amd64 13781729280 Bytes RAM C:\temp>java -Xmx35000g ostest Error occurred during initialization of VM Could not reserve enough space for object heap Could not create the Java virtual machine.
En Solaris (4 GB de RAM, Java 1.5.0_16), que prácticamente se rindieron a 1 PB de qué tan alto que puedo establecer -Xmx. No entiendo la lógica de cuándo saldrá el error en la configuración -Xmx.
devsun1.mgo:/export/home/mgo> java -d64 -Xmx1000000g ostest os.arch=sparcv9 4294967296 Bytes RAM