En una máquina 32b, solo se puede instalar la versión 32b de la JVM. En una máquina 64b, el usuario puede elegir entre la versión 32b y la 64b. Pero hay ciertos matices en esto que pueden afectar el rendimiento de nuestras aplicaciones Java.
Si la aplicación Java usa menos de 4G de memoria, deberíamos usar la JVM 32b incluso en máquinas 64b. Esto se debe a que las referencias de memoria en este caso solo serían 32b y manipularlas sería menos costoso que manipular direcciones 64b. En este caso, la JVM de 64b funcionaría peor incluso si usamos OOPS (punteros a objetos ordinarios). Al usar OOPS, la JVM puede usar direcciones 32b en la JVM 64b. Sin embargo, manipularlos sería más lento que las referencias reales de 32b, ya que las referencias nativas subyacentes seguirían siendo 64b.
Si nuestra aplicación va a consumir más de 4G de memoria, tendremos que utilizar la versión 64b ya que las referencias 32b no pueden abordar más de 4G de memoria. Podemos tener ambas versiones instaladas en la misma máquina y podemos cambiar entre ellas usando la variable PATH.