Sobre o projeto

O Memray é um profiler de memória para Python, projetado para rastrear alocações de memória em código Python, módulos de extensão nativa (como C/C++) e até no próprio interpretador Python. Ele fornece rastreamento detalhado da pilha de chamadas para cada chamada de função, permitindo atribuição precisa do uso de memória — diferentemente dos profilers baseados em amostragem. Suporta tanto uso via CLI quanto como biblioteca, tornando-o flexível para diferentes cenários de profiling. Principais capacidades incluem: - Rastreamento de todas as chamadas de função com representação completa da pilha de chamadas. - Profiling de código nativo C/C++ dentro de extensões Python (por exemplo, numpy, pandas) por meio da flag opcional --native. - Geração de múltiplos tipos de relatório: grafos de chama (HTML), tabelas, visualizações em árvore, monitoramento em tempo real no terminal, resumos e estatísticas. - Suporte a threads Python e threads nativas (por exemplo, de extensões C++). - Desempenho rápido: lentidão mínima durante o profiling; o rastreamento nativo pode ser ativado/desativado conforme a necessidade entre velocidade e detalhamento. - Integração com pytest por meio do plugin pytest-memray para testes automatizados de memória e limites. - Modo live: TUI interativo para inspeção de memória em tempo real durante scripts de longa execução. - API programável: use o gerenciador de contexto memray.Tracker() para fazer profiling de blocos específicos de código programaticamente. A instalação requer Python 3.9+ e está disponível via pip ou conda. Wheels binários são fornecidos para Linux x86/x64 e macOS; builds a partir do fonte exigem dependências do sistema como libunwind e liblz4. A documentação e exemplos estão disponíveis em https://bloomberg.github.io/memray/. O Memray ajuda a identificar alto uso de memória, vazamentos de memória e pontos quentes de alocação. Não suporta Windows ou outras plataformas. O projeto é licenciado sob Apache-2.0 e acolhe contribuições da comunidade seguindo o sign-off DCO.