
Meu sistema relata 8 Gb, mas quando tento reservar 6,5 Gb de espaço de heap, ou mesmo 4 Gb para um programa Java, ele falha. É porque instalei a versão de 32 bits?
Falha ao alocar heap java -Xmx3072m -jar {...}
Inicia ok, mas o aplicativo fica sem memória. java -Xmx2048m -jar {...}
Responder1
Acredite ou não, esta é uma pergunta frequente. Então sua resposta éaqui:
"O limite teórico máximo de heap para a JVM de 32 bits é 4G. Devido a várias restrições adicionais, como troca disponível, uso de espaço de endereço do kernel, fragmentação de memória e sobrecarga de VM, na prática o limite pode ser muito menor. Na maioria dos 32 modernos Em sistemas Windows de 32 bits, o tamanho máximo de heap variará de 1,4 G a 1,6 G. Em kernels Solaris de 32 bits, o espaço de endereço é limitado a 2 G. Em sistemas operacionais de 64 bits que executam a VM de 32 bits, o tamanho máximo de heap pode ser. maior, aproximando-se do 4G em muitos sistemas Solaris.
A partir do Java SE 6, o recurso boot.ini do Windows /3GB não é suportado.
Se seu aplicativo exigir um heap muito grande, você deverá usar uma VM de 64 bits em uma versão do sistema operacional que ofereça suporte a aplicativos de 64 bits. Consulte Configurações de sistema suportadas pelo Java SE para obter detalhes. "