5.3.3. Heap do Perfil e Espaço de Pilha com Massif


Massif mede o espaço de pilha usado por um programa específico, tanto o espaço útil quanto qualquer espaço adicional alocado para fins de contabilidade e alinhamento. Ele pode ajudá-lo a reduzir a quantidade de memória utilizada pelo seu programa, o que pode aumentar a velocidade do seu programa, e reduzir a probabilidade de que seu programa irá esgotar o espaço de troca da máquina em que ele executa. Massif também pode fornecer detalhes sobre quais partes do seu programa são responsáveis pela alocação de memória heap. Programas executados com Massif são executados com cerca de vinte vezes mais lentidão do que a sua velocidade de execução normal.
Para realizar o perfil do uso do heap de um programa, especifique o massif como uma ferramenta Valgrind que você deseja utilizar:
# valgrind --tool=massif program
Dados de perfil coletados pelo Massif são gravados em um arquivo, que por padrão é chamado de massif.out.pid, onde pid é o ID de processo do programa especificado.
Estes dados de perfil também podem ser grafados com o comando ms_print, assim como:
# ms_print massif.out.pid
Isso produz um gráfico que mostra o consumo de memória sobre a execução do programa, e informações detalhadas sobre os locais responsáveis pela alocação em vários pontos do programa, incluindo no ponto de alocação de memória de pico.
Massif fornece um número de opções de linha de comando que podem ser usados para dirigir a saída da ferramenta. Algumas das opções disponíveis são:
--heap
Especifica se deve realizar perfil de heap. Este valor padrão é yes. O perfil do Heap pode ser desabilitado configurando esta opção para no.
--heap-admin
Especifica o número de bytes por bloco a usar para a administração quando um perfil de heap for habilitado. O valor padrão é 8 bytes por bloco.
--stacks
Especifica se deve criar o perfil da pilha. O valor padrão é no (desabilitado). Para habilitar perfis de pilha, definir esta opção para yes, mas esteja ciente de que isso desacelera o Massif. Observe também que Massif assume que a pilha principal tem tamanho zero na inicialização para indicar melhor o tamanho da porção da pilha sobre a qual o programa que está sendo perfilado tem controle.
--time-unit
Especifica a unidade de tempo utilizado para a criação de perfil. Há três valores válidos para esta opção: instruções executadas (i), o valor padrão, que é útil na maioria dos casos, tempo real (ms, em milissegundos), que pode ser útil em certos casos, e bytes alocados / desalocado na pilha e / ou stack (B), que é útil para os programas de muito curto prazo, e para fins de teste, porque é o mais reproduzível em máquinas diferentes. Esta opção é útil ao criar gráficos de resultado de Massif com ms_print.
Para uma lista completa de opções consulte a documentação incluída em /usr/share/doc/valgrind-version/valgrind_manual.pdf.
Red Hat logoGithubRedditYoutubeTwitter

Aprender

Experimente, compre e venda

Comunidades

Sobre a documentação da Red Hat

Ajudamos os usuários da Red Hat a inovar e atingir seus objetivos com nossos produtos e serviços com conteúdo em que podem confiar.

Tornando o open source mais inclusivo

A Red Hat está comprometida em substituir a linguagem problemática em nosso código, documentação e propriedades da web. Para mais detalhes veja oBlog da Red Hat.

Sobre a Red Hat

Fornecemos soluções robustas que facilitam o trabalho das empresas em plataformas e ambientes, desde o data center principal até a borda da rede.

© 2024 Red Hat, Inc.