Memray: A Powerful Memory Profiler for Python Applications

This repository profile is provided by osrepos.com, an open source repository discovery platform.

Memray: A Powerful Memory Profiler for Python Applications

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.

Repository Information

Analyzed by OSRepos on February 9, 2026

Use at your own risk

OSRepos shares public repositories for knowledge and discovery only. Any installation, execution, configuration, or use of code from these repositories is the user's own responsibility. Always review the repository, source code, dependencies, licenses, and security implications before running or installing anything. OSRepos is not responsible for issues, damages, or losses resulting from third-party repositories.

Introdução

Memray, 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.

As principais características do Memray incluem:

  • 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.
  • Suporte Nativo: Lida com chamadas nativas em bibliotecas C/C++, garantindo que a pilha de chamadas completa esteja presente nos resultados.
  • Desempenho Elevado: Apresenta uma sobrecarga mínima no desempenho da aplicação durante o profiling.
  • Relatórios Versáteis: Gera diversos tipos de relatórios, incluindo flame graphs interativos, tabelas e visualizações em tempo real.
  • Compatibilidade com Threads: Funciona perfeitamente com threads Python e threads nativas (por exemplo, threads C++ em extensões C).

Memray é 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.

Instalação

Memray requer Python 3.7+ e pode ser facilmente instalado usando pip:

python3 -m pip install memray

Como 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.

Exemplos de Uso

Memray oferece várias maneiras de perfilar suas aplicações Python.

Uso via CLI

A forma mais comum é usar a ferramenta de linha de comando para executar seu script e gerar um relatório:

python3 -m memray run -o output.bin my_script.py
python3 -m memray flamegraph output.bin

Isso gerará um arquivo HTML com um flame graph da utilização da memória.

Plugin Pytest

Para integrar Memray em sua suíte de testes, você pode usar o pytest-memray:

pytest --memray tests/

Você também pode definir limites de memória para seus testes:

import pytest

@pytest.mark.limit_memory("24 MB")
def test_foobar():
    # do some stuff that allocates memory
    pass

Modo Nativo

Para rastrear funções C/C++ nativas, adicione o argumento --native ao comando run:

memray run --native my_script.py

Isso fornecerá uma visão holística das alocações, incluindo aquelas feitas por extensões C.

Modo Live

O modo live permite monitorar interativamente o uso da memória em tempo real em uma interface baseada em terminal:

memray run --live my_script.py

API Programática

Memray também pode ser usado programaticamente dentro do seu código Python:

import memray

with memray.Tracker("output_file.bin"):
    print("Allocations will be tracked until the with block ends")

Para mais detalhes, consulte a documentação da API.

Porquê usar Memray?

Memray é 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.

Links

Related repositories

Similar repositories that may be relevant next.

torchchat: Run PyTorch LLMs Locally on Servers, Desktop, and Mobile

torchchat: Run PyTorch LLMs Locally on Servers, Desktop, and Mobile

July 3, 2026

torchchat is a PyTorch-native codebase designed to showcase the ability to run large language models (LLMs) seamlessly across various platforms. It enables local execution of LLMs using Python, within C/C++ applications on desktop or servers, and directly on iOS and Android devices. Although no longer under active development, it remains a valuable resource for understanding and implementing local LLM deployment strategies.

llmlocalpytorch
Docling: Streamline Document Processing for Generative AI Applications

Docling: Streamline Document Processing for Generative AI Applications

July 3, 2026

Docling is a powerful Python library designed to simplify document processing, preparing diverse formats for generative AI applications. It offers advanced parsing capabilities, including sophisticated PDF understanding, and provides a unified document representation. With seamless integrations into the AI ecosystem, Docling empowers developers to build robust AI solutions.

aidocument-parsingpdf-converter
DeepFabric: High-Quality Synthetic Data for Agentic AI Systems

DeepFabric: High-Quality Synthetic Data for Agentic AI Systems

July 2, 2026

DeepFabric is an open-source Python library designed to generate high-quality synthetic training data for language models and agent evaluations. It excels at creating domain-specific datasets that teach models to think, plan, and act effectively, including correct tool usage and adherence to schema structures. This comprehensive pipeline also integrates training and evaluation capabilities, ensuring robust model development.

pythonaimachine-learning
OpenMontage: The First Open-Source, Agentic Video Production System

OpenMontage: The First Open-Source, Agentic Video Production System

June 29, 2026

OpenMontage is the world's first open-source, agentic video production system, designed to transform your AI coding assistant into a full video production studio. It features 12 pipelines, 52 tools, and over 500 agent skills, enabling end-to-end video creation from a simple prompt. This powerful tool handles research, scripting, asset generation, editing, and final composition, including the unique ability to produce real video from stock footage.

agentic-aivideo-productionopen-source

Source repository

Open the original repository on GitHub.

7 counted GitHub visits

View on GitHub
OS
OSRepos

Analysis and discovery of open source repositories. Find interesting projects and follow their updates.

Monitor your website with YourWebsiteScore

OSRepos shares public repositories for knowledge and discovery only. Any installation, execution, configuration, or use of third-party repository code is at your own risk. Always review source code, dependencies, licenses, and security implications before running anything.

© 2025 OSRepos. Built with Nuxt 3 and lots of ❤️