ps
, top
e atop
não fornecerão as respostas mais precisas. Este tópico de troca de pilha aborda isso detalhadamente e aponta para uma entrada de blog bem escrita no tópico que detalha porque este é o caso.
Existem ferramentas melhores para ajudá-lo a quantificar o uso de memória, e valgrind
parece ser uma boa ferramenta . Você pode instalá-lo executando:
sudo apt-get install valgrind
Digamos que você tenha um programa chamado hello_world:
gcc -o hello_world -g hello_world.c
Para obter um perfil de heap para este programa, você executaria:
valgrind --tool=massif ./hello_world
Isso gerará uma saída genérica para sua tela, os resultados reais serão salvos em um arquivo no mesmo diretório que está no formato:
massif.out.pid
onde pid é o id do programa para hello_world quando você o executou naquela instância.
Provavelmente seria melhor obter as informações de time
separadamente, ou seja, não tente executar valgrind
e time
ao mesmo tempo. O link stackoverflow fornece outras alternativas.