DATA
significa memória alocada pelo aplicativo usando brk(2)
- isto é, estendendo o segmento de dados.
O Java tem muitas coisas diferentes que serão colocadas no segmento de dados:
- O heap
- Qualquer memória alocada pela camada de tempo de execução nativa (código usando a palavra-chave
native
) - Qualquer memória alocada por DLLs / bibliotecas compartilhadas que você carrega do Java usando JNI / JNA
- Memória em que o código de bytes é carregado, interpretado e compilado pelo JIT (cache de código)
- Estruturas de memória usadas pelo GC e outro código de suporte de tempo de execução
- A pilha
Note que atribuir um heap de 128MB ao programa alocará mais do que isso, pois o Java também criará algumas estruturas para gerenciar o heap que não faz parte dele. Portanto, 128MB significa que você terá 128MB nos quais você pode alocar objetos Java.