Um profiler de memória open source super fácil de usar, hoje vou te ensinar como usá-lo!

Memray é um perfilador de memória de código aberto desenvolvido pela Bloomberg. É de código aberto há mais de um mês e já recebeu mais de 8,4 mil estrelas, o que o torna um verdadeiro projeto estrela. Hoje recomendaremos esta ferramenta de análise de memória Python para todos.

Memray pode rastrear alocações de memória em código Python, módulos de extensão nativos e no próprio interpretador Python. Ele pode gerar muitos tipos diferentes de relatórios para ajudá-lo a analisar o uso de memória do código Python.

  • Principais características da ferramenta:

  • Rastreie cada chamada de função e rastreie com precisão a pilha de chamadas

  • Pode rastrear chamadas da biblioteca c/c++

  • A análise é muito rápida

  • Colete dados de memória e gere vários ícones

  • Usando threads python

  • Trabalhe com threads nativos

  • Problemas que podem ajudar a resolver:

  • Analise as alocações de memória em aplicativos para descobrir as causas do alto uso de memória

  • Encontre a causa do vazamento de memória

  • Encontre pontos de acesso de código que causam alocações pesadas de memória

►►►  instalação do memray

  • Requisitos ambientais: python3.7+ ou superior, sistema Linux (suporta apenas sistema Linux)

  • Instalação: pip3 instalar memray

►►►  uso de memray

ajuda sobre uso do memray

python3 -m memray --help

foto

parâmetro

efeito

correr

Execute o aplicativo especificado e monitore o uso de memória

flamegráfico    

No relatório HTML, use o gráfico em degradê para exibir o uso de memória

mesa

No arquivo de relatório HTML, exiba a situação da análise de memória em uma tabela

ao vivo

Use a exibição da tela em tempo real para exibir vários usos de memória

árvore

No terminal, exiba o uso de memória em uma estrutura de árvore

analisar

Use o modo de depuração para exibir o uso de memória de cada linha

resumo

Resuma o perfil de uso de memória durante a operação do terminal

Estatísticas

Exibir o uso de memória no terminal detalhadamente

►►►  executar uso do comando

  • python3 -m memray run --help obter ajuda

foto

parâmetro

efeito

-oOUTPU,--saída SAÍDA

Especifique onde gerar os resultados

--ao vivo

Iniciar o modo de sessão de rastreamento ao vivo

--live-remote

Inicie uma sessão de rastreamento ao vivo e espere o cliente se conectar

--live-port LIVE_PORT, 

-p LIVE_PORT

A porta a ser usada ao iniciar o rastreamento em tempo real

--nativo

Rastreando a pilha C/C++

--follow-fork

Rastrear alocações em processos filhos bifurcados por um script

--trace-python-allocadores

Registre a alocação do alocador pymalloc

-q, --quieto

Não exibe nenhuma saída específica de rastreamento durante a execução

-f, --força

Recompra forçada de arquivos existentes

--comprimir ao sair

Use lz4 para compactar o arquivo gerado após a conclusão do rastreamento

--no-compress

Arquivos gerados sem compactação lz4

-c

programa passado como uma string

-m

Execute módulos de biblioteca como scripts

  • python3 -m memray run xxx.py analisa diretamente o uso de memória de um determinado arquivo py, e um arquivo de registro de uso de memória de 'memray-py file name.process id.bin' será gerado no caminho atual. Claro, você também pode seguir -o outFiPath para especificar o caminho de saída. Se o arquivo py que está sendo executado for um código de módulo, você também poderá usar o modo -m xxx.py para executá-lo.

foto

O arquivo 'memray-py filename.processid.bin' pode ser convertido em um relatório gráfico html-flame por python3 -m memray flamegraph memray-pyfilename.processid.bin

foto

Conforme mostrado na figura acima, de cima para baixo, mostra o processo de chamada do programa. A largura representa quanta memória a função ocupa.

  • python3 -m memray run --native xxxx.py rastreará e analisará a memória consumida chamando as funções C/C++ subjacentes no código python

foto

foto

  • python3 -m memray run --trace-python-allocators xxx.py rastreia e analisa o alocador de memória do programa python pymalloc

foto

foto

Isto parece ter o mesmo efeito sem adicionar parâmetros, mas na verdade é completamente diferente. Este método rastreará profundamente a alocação de memória. Existem quatro alocadores de memória comuns em Python (malloc, free, realloc, pymalloc). Este parâmetro é muito útil quando Python tem um estouro de memória. Porém, com este parâmetro adicionado, a velocidade de transporte será mais lenta e os arquivos gerados pelos dados coletados serão maiores.

  • python3 -m memray run --live xxx.py exibe dados de memória rastreados no modo de tela ao vivo.

foto

Por padrão, os dados na memória total são organizados de grande para pequeno; pressione "O" para classificar e exibir os objetos de memória de acordo com a memória privada, de grande para pequeno; pressione "A" para classificar os objetos de memória de acordo com o número de memória alocações de maior para menor.

Com esses dados estatísticos, você pode localizar rapidamente quais objetos ocupam uma grande quantidade de memória e quais objetos recebem memória alocada com frequência. Esses objetos são os principais objetos de análise.

comando flamegraph --- gerar relatório de gráfico de chama

  • python3 -m memray flamegraph --help Obtenha ajuda

foto

  • python3 -m memray flamegraph xxx.bin gera gráfico em degradê

comando de tabela - gerar relatório de tabela

  • python3 -m tabela memray --help Obtenha ajuda

  • python3 -m memray table xxxx.bin converte o arquivo bin em um relatório de tabela

foto

comando tree - gerar relatório de árvore

  • python3 -m memray tree --help Obtenha ajuda

  • python3 -m memray tree xxxx.bin converte o arquivo bin em um relatório de árvore

foto

comando de resumo - gera relatório de resumo

  • python3 -m resumo do memray --help Obtenha ajuda

  • python3 -m memray summary xxxx.bin analisa o arquivo bin e gera um relatório resumido

foto

comando stats --- gerar relatórios estatísticos detalhados

  • python3 -m memray stats --help Obtenha ajuda

  • python3 -m memray stats xxxx.bin analisa o arquivo bin e gera um relatório detalhado

foto

Finalmente: O vídeo tutorial completo de teste de software abaixo foi compilado e carregado. Amigos que precisarem podem obtê-lo sozinhos [garantido 100% gratuito]

Documento de entrevista de teste de software

Devemos estudar para encontrar um emprego bem remunerado. As perguntas da entrevista a seguir são os materiais de entrevista mais recentes de empresas de Internet de primeira linha, como Alibaba, Tencent, Byte, etc., e alguns chefes da Byte deram respostas confiáveis. Depois de terminar este conjunto Acredito que todos podem encontrar um emprego satisfatório com base nas informações da entrevista.

Acho que você gosta

Origin blog.csdn.net/AI_Green/article/details/133321879
Recomendado
Clasificación