Em uma máquina 32b, apenas a versão 32b do JVM pode ser instalada. Em uma máquina 64b, o usuário pode escolher entre a versão 32b e a 64b. Mas há certas nuances nisso que podem afetar o desempenho de nossos aplicativos Java.
Se o aplicativo Java usa menos de 4G de memória, devemos usar o JVM 32b mesmo em máquinas 64b. Isso ocorre porque as referências de memória neste caso seriam apenas 32b e manipulá-las seria menos caro do que manipular endereços 64b. Nesse caso, o JVM 64b teria um desempenho pior, mesmo se estivermos usando OOPS (ponteiros de objeto comuns). Usando OOPS, a JVM pode usar endereços de 32b na JVM de 64b. No entanto, manipulá-los seria mais lento do que as referências reais de 32b, pois as referências nativas subjacentes ainda seriam de 64b.
Se nosso aplicativo vai consumir mais do que 4G de memória, teremos que usar a versão 64b, pois as referências de 32b podem endereçar no máximo 4G de memória. Podemos ter ambas as versões instaladas na mesma máquina e podemos alternar entre elas usando a variável PATH.