Os heaps nativos e Java
A JVM mantém duas áreas de memória, o heap Java™ e o heap nativo (ou do sistema). Estes dois heaps têm propósitos diferentes e são mantidos por mecanismos diferentes.
O heap Java contém as instâncias de objetos Java e é frequentemente referido como 'heap'. É o heap Java que é mantido pela Coleta de Lixo e é o heap Java que é alterado pelas configurações do heap da linha de comandos O heap Java é alocado usando mmap, ou shmat se o suporte de página grande for solicitado O tamanho máximo do heap Java é pré-alocado durante a inicialização da JVM como uma área contígua, mesmo se a configuração do tamanho de heap mínimo for menor Essa alocação permite que o limite de tamanho de heap artificial imposto pela configuração de tamanho de heap mínimo se mova em direção ao limite de tamanho de heap real com a expansão de heap Consulte Gerenciamento de memória na J9 Referência da VM para obter mais informações
- Objetos Motif requeridos por AWT e Swing
- Buffers para rotinas de compactação de dados, que são o espaço de memória que as Java Class Libraries requerem para ler ou gravar dados compactados como arquivos .zip ou .jar.
- Alocações de malloc por código JNI do aplicativo
- Código compilado gerado pelo Compilador Just In Time (JIT)
- Encadeamentos para mapear para encadeamentos Java