Sua pergunta parece assumir que seu aplicativo está completamente na memória ou não. Mas este não é o caso. Existem diferentes tipos de dados carregados para um aplicativo e todos são tratados de maneira ligeiramente diferente:
- o binário da aplicação
- bibliotecas compartilhadas necessárias pelo aplicativo
- espaço alocado por seu aplicativo para dados
- arquivos mapeados na memória alocados pelo seu aplicativo
No entanto, a qualquer momento é principalmente a descrição do kernel do Linux para decidir o que está realmente na memória e quais não. Carregar dados na memória é feito tipicamente em páginas de 4096 bytes, então até mesmo cada um dos 1 a 4 acima pode estar na memória apenas parcialmente.
O tamanho total do que está na memória para o seu processo é chamado de tamanho do conjunto de residentes , normalmente chamado de RSS. Quando você executa htop
ou top
ou ps
, é a coluna RES
ou RSS
que contém as informações desejadas.
Devo admitir, no entanto, que não tenho certeza se as bibliotecas compartilhadas são contadas ou se estão separadas na coluna SHR
(para compartilhada).