Além do heap (especificado por -Xms
e -Xmx
), é necessário incluir as áreas não heap. Estes incluem
- O Perm Gen, que é 64mb em sistemas de 32 bits, e 96mb em sistemas de 64 bits inicialmente
- O cache de código, que está entre 20 e 40mb, dependendo da JVM
- A área de buffer do NIO (na qual
DirectByteBuffer
s é extraída) é inicialmente 64mb
Há também o espaço de trabalho da própria JVM, que será algumas dezenas de mb.
Você também deve estar ciente do dimensionamento automático de Sun JVM ao usar uma máquina de classe de servidor . Com o tempo, a definição da classe do servidor (memória de 2 Gb, mais de um núcleo) sofreu alguma depreciação e agora a maioria das máquinas é capaz de acionar as -server
otimizações. Meu conselho é sempre especificar as configurações -Xms
e -Xmx
e passar -server
, a menos que você não consiga pensar em uma boa razão também.