Execute o programa em /usr/bin/time
e observe o valor máximo de residentes. Você precisa especificar o caminho completo para evitar o uso do comando de tempo embutido mais simples.
Obtenha o consumo de memória do processo esta pergunta é sobre como obter o uso de memória do programa em execução. Eu preciso saber quanta RAM um programa usou depois de ter terminado.
Digamos que eu esteja compilando um programa C ++ com este comando g++ main.cpp
. Eu preciso saber quanta memória isso usou depois que terminou. Ou, se a memória só puder ser medida por um instante específico, preciso saber qual é o uso máximo de RAM ao compilar um programa.
Para qualquer programa que eu passe para /usr/bin/time -f "%M"
, recebo o valor máximo de residente 0. Tenho certeza de que meu programa usa gigabytes de memória
Eu sempre testo meu código com valgrind .
execute seu código como
valgrind --leak-check=yes --track-origins=yes ./a.out
Ele fornece uma boa saída sobre o consumo de memória (alocação / desalocação), mas esteja preparado para uma execução muito lenta.
Usar o sinalizador -g ao compilar ajudará o valgrind a fornecer informações sobre quais linhas podem vazar memória. (um tratamento extra)
Sinta-se à vontade para verificar parâmetros valgrind adicionais para saída adicional. Para mim, esses dois são suficientes.
Antes de modificar o kernel ou executar o programa sob investigação dentro de algum tipo de wrapper que registra seu uso de memória, sua melhor opção é seguir o conselho fornecido nas respostas da pergunta vinculada.