Cómo evitar el error de tamaño de la stack de memoria inicial

Ejecuto un código Java con el siguiente comando:

$ java -Xms4G -Xmx4G myjavacode 

La capacidad de RAM de mi CPU es de 6GB.

Sin embargo, siempre falla al ejecutar este mensaje de error:

 Invalid initial heap size: -Xms5G The specified size exceeds the maximum representable size. Could not create the Java virtual machine 

¿Hay alguna forma de configurar la opción Java para que podamos ejecutar el código?

Has excedido el tamaño de almacenamiento dynamic máximo de tu JVM. Esto depende tanto de JVM como del sistema operativo. En la mayoría de los sistemas de 32 bits, el valor máximo será de 2 Gb, independientemente de la memoria física disponible.

Por defecto, Java se ejecutará en modo de 32 bits. Asegúrese de darle la opción -d64 para ponerlo en el modo de 64 bits. Una vez en el modo de 64 bits, no debería tener problemas para asignar una JVM de 6 GB.

En realidad, el tamaño máximo de la memoria en los sistemas de 32 bits puede variar, siendo algo hasta 4 GB, pero 2 GB es un valor común. A menudo es posible volver a vincular su kernel para boost esto a 3 o 3,5 GB. El problema, por supuesto, es que simplemente no tiene el espacio de direcciones para mapear más memoria. ¿Has probado una máquina de 64 bits?

Además, recuerde configurar su ulimit más alto antes de hacer esto.