A aplicação Java de 64 bits ocupa mais memória que 32 bits

1

Temos um aplicativo em execução no Mac com o java 1.5. Essa é uma VM de 32 bits. A memória heap está dentro do limite. Quando movemos este aplicativo para o Linux com o java 1.5 (64 bits), vemos um aumento de 50% na utilização da memória. O footprint de memória do jvm será tão alto no Linux? Nós temos um patch para o mesmo no Linux?

    
por mssv 10.03.2011 / 12:44

2 respostas

1

Será bastante comum os aplicativos de 64 bits exigirem mais memória que os de 32 bits (variáveis maiores, ponteiros, etc.). Isto, e a implementação diferente da JVM entre os dois sistemas, poderia muito bem ser a razão.

Eu, pessoalmente, não acho isso estranho, então eu não consideraria isso um problema, a menos que o uso da memória tenha começado a aumentar como um problema de desempenho similar.

    
por 10.03.2011 / 12:51
0

Em um ambiente de 64 bits, todos os ponteiros ocupam o dobro do espaço. inteiros longos também podem, mas eu acho que eles já são 64 bits em ambos os casos.

Quanto isso afeta você depende do seu caso específico, qualquer referência de objeto é um ponteiro. Se seus objetos são principalmente links para outros objetos, eles serão explodidos.

Existem compilações de JVM de 32 bits para o Linux. A má notícia é que uma vez que você supera 32 bits, você passa de 2 a 3 GB para precisar de 4 a 6 GB apenas para estar no mesmo nível.

    
por 10.03.2011 / 12:55