{"name":"Memray: A Powerful Memory Profiler for Python Applications","description":"Memray is an advanced memory profiler for Python, designed to track memory allocations in Python code, native extension modules, and the interpreter itself. It offers detailed insights into memory usage, helping developers identify leaks and optimize performance through various reporting options like flame graphs and live monitoring.","github":"https://github.com/bloomberg/memray","url":"https://osrepos.com/repo/bloomberg-memray","source":"osrepos.com","sourceDescription":"This repository profile is provided by osrepos.com, an open source repository discovery platform.","repositoryProfile":"https://osrepos.com/repo/bloomberg-memray","generatedFor":"open source discovery and AI-assisted research","markdown":"https://osrepos.com/repo/bloomberg-memray.md","json":"https://osrepos.com/repo/bloomberg-memray.json","topics":["python","memory-profiler","memory-leak-detection","profiler","development-tools","performance-optimization","debugging"],"keywords":["python","memory-profiler","memory-leak-detection","profiler","development-tools","performance-optimization","debugging"],"stars":null,"summary":"Memray is an advanced memory profiler for Python, designed to track memory allocations in Python code, native extension modules, and the interpreter itself. It offers detailed insights into memory usage, helping developers identify leaks and optimize performance through various reporting options like flame graphs and live monitoring.","content":"## Introdução\n\nMemray, desenvolvido pela Bloomberg, é um profiler de memória robusto para aplicações Python. Ele se destaca por sua capacidade de rastrear alocações de memória não apenas no código Python, mas também em módulos de extensão nativos e no próprio interpretador Python. Com Memray, os desenvolvedores podem obter uma visão detalhada do uso da memória, facilitando a identificação de vazamentos e gargalos de alocação.\n\nAs principais características do Memray incluem:\n\n*   **Rastreamento Preciso**: Monitora cada chamada de função, fornecendo uma representação exata da pilha de chamadas, ao contrário de profilers baseados em amostragem.\n*   **Suporte Nativo**: Lida com chamadas nativas em bibliotecas C/C++, garantindo que a pilha de chamadas completa esteja presente nos resultados.\n*   **Desempenho Elevado**: Apresenta uma sobrecarga mínima no desempenho da aplicação durante o profiling.\n*   **Relatórios Versáteis**: Gera diversos tipos de relatórios, incluindo flame graphs interativos, tabelas e visualizações em tempo real.\n*   **Compatibilidade com Threads**: Funciona perfeitamente com threads Python e threads nativas (por exemplo, threads C++ em extensões C).\n\nMemray é uma ferramenta essencial para analisar alocações em aplicações, descobrir a causa de alto uso de memória, encontrar vazamentos de memória e identificar hotspots de código que geram muitas alocações. É importante notar que Memray funciona apenas em Linux e macOS.\n\n## Instalação\n\nMemray requer Python 3.7+ e pode ser facilmente instalado usando pip:\n\nshell\npython3 -m pip install memray\n\n\nComo Memray contém uma extensão C, ele é distribuído como wheels binários. Se um wheel binário não estiver disponível para o seu sistema (Linux x86/x64 ou macOS), você precisará garantir que todas as dependências estejam satisfeitas para a compilação a partir do código-fonte. As dependências binárias incluem `libdebuginfod-dev` (para Linux), `libunwind` (para Linux) e `liblz4`.\n\n## Exemplos de Uso\n\nMemray oferece várias maneiras de perfilar suas aplicações Python.\n\n### Uso via CLI\n\nA forma mais comum é usar a ferramenta de linha de comando para executar seu script e gerar um relatório:\n\nshell\npython3 -m memray run -o output.bin my_script.py\npython3 -m memray flamegraph output.bin\n\n\nIsso gerará um arquivo HTML com um flame graph da utilização da memória.\n\n### Plugin Pytest\n\nPara integrar Memray em sua suíte de testes, você pode usar o [pytest-memray](https://github.com/bloomberg/pytest-memray \"pytest-memray GitHub Repository\" target=\"_blank\"):\n\nshell\npytest --memray tests/\n\n\nVocê também pode definir limites de memória para seus testes:\n\npython\nimport pytest\n\n@pytest.mark.limit_memory(\"24 MB\")\ndef test_foobar():\n    # do some stuff that allocates memory\n    pass\n\n\n### Modo Nativo\n\nPara rastrear funções C/C++ nativas, adicione o argumento `--native` ao comando `run`:\n\nshell\nmemray run --native my_script.py\n\n\nIsso fornecerá uma visão holística das alocações, incluindo aquelas feitas por extensões C.\n\n### Modo Live\n\nO modo live permite monitorar interativamente o uso da memória em tempo real em uma interface baseada em terminal:\n\nshell\nmemray run --live my_script.py\n\n\n### API Programática\n\nMemray também pode ser usado programaticamente dentro do seu código Python:\n\npython\nimport memray\n\nwith memray.Tracker(\"output_file.bin\"):\n    print(\"Allocations will be tracked until the with block ends\")\n\n\nPara mais detalhes, consulte a [documentação da API](https://bloomberg.github.io/memray/api.html \"Memray API Documentation\" target=\"_blank\").\n\n## Porquê usar Memray?\n\nMemray é uma ferramenta indispensável para qualquer desenvolvedor Python preocupado com o desempenho e a eficiência da memória. Sua capacidade de rastrear alocações com precisão em todos os níveis, desde o código Python até as extensões nativas, o torna superior a muitos outros profilers. A variedade de relatórios visuais, como os flame graphs, e o modo live interativo, permitem uma depuração e otimização rápidas e eficazes. Se você precisa encontrar vazamentos de memória, entender o consumo de memória de sua aplicação ou otimizar o uso de recursos, Memray oferece as ferramentas necessárias para o trabalho.\n\n## Links\n\n*   **Repositório GitHub**: [bloomberg/memray](https://github.com/bloomberg/memray \"Memray GitHub Repository\" target=\"_blank\")\n*   **Documentação Oficial**: [Memray Documentation](https://bloomberg.github.io/memray/ \"Memray Official Documentation\" target=\"_blank\")\n*   **PyPI**: [Memray no PyPI](https://pypi.org/project/memray \"Memray on PyPI\" target=\"_blank\")","metrics":{"detailViews":0,"githubClicks":7},"dates":{"published":null,"modified":"2026-02-09T20:01:09.000Z"}}