A Bloomberg abriu o código-fonte do memray, uma ferramenta para criar perfis de memória em aplicativos Python. O programa rastreia operações de alocação de memória em Python e oferece uma interface visual para analisar e otimizar o consumo de memória de diversas seções de código, bem como plug-ins escritos em C/C++. Os relatórios podem ser gerados de forma interativa ou em formato HTML. Inclui uma interface CLI para gerenciar perfis e uma biblioteca que pode ser usada para rastrear operações de memória em projetos de terceiros. O código é publicado sob a licença Apache 2.0. A operação é suportada apenas na plataforma Linux.
Principais características:
- Aplicativos: identifique motivos para alto consumo de memória em aplicativos, encontre vazamentos de memória e identifique códigos que estejam executando muitas alocações de memória.
- Rastreia todas as chamadas de função em relação ao consumo total de memória, ao consumo dentro da função e ao número de operações de alocação de memória. Capacidade de estimar com precisão a pilha de chamadas.
- Processamento de chamadas para bibliotecas em C/C++ e contabilização do consumo de memória em módulos nativos. Suporte para análise de projetos usando numpy e pandas.
- Sobrecarga mínima e impacto insignificante no desempenho do aplicativo analisado. Opção para desativar o rastreamento de código nativo para melhorar o desempenho.
- Disponibilidade de um grande número de relatórios de uso de memória, incluindo gráficos visuais hierárquicos e de escada (gráfico em chama).
- Capacidade de trabalhar com threads e analisar memória no contexto de threads individuais. Tanto os threads Python quanto os threads nativos, como os threads C++ usados em módulos C/C++, são suportados.
- Possibilidade de integração com pytest e disponibilização de anotações pytest que definem limites de consumo de memória, caso sejam ultrapassados serão gerados avisos durante a execução do teste.
Fonte: opennet.ru