localizando a quantidade de uso de memória de um comando no bash

0

Eu escrevi um programa e agora eu preciso medir seu desempenho, então eu uso time para encontrar timings, mas existe algum comando como o tempo que eu poderia executar o meu programa e ter a quantidade de memória usada pelo meu programa? (como o que o time faz)

Estou programando em C / C ++, java, python, etc. Por isso, preciso de uma ferramenta uniforme (como time ) para medir os usos da memória.

TnX aLoT!

    
por ARF 22.01.2014 / 22:44

1 resposta

1

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.

    
por Dojo 23.01.2014 / 02:37