awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
bloomberg avatar

bloomberg/memray

0
View on GitHub↗

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI
bloomberg.github.io/memray
↗

Memray

Memray is a memory profiler for Python that tracks heap allocations in both Python code and native C or C++ extensions. It captures memory events by hooking into the language runtime and traversing call stacks, providing a comprehensive view of how an application consumes memory. The tool is designed to minimize performance impact on the target application by using thread-local buffering and streaming data to an external process or file.

The project distinguishes itself through its ability to monitor complex, multi-threaded systems and child processes in real-time. It provides diagnostic utilities that allow developers to attach to running processes, filter memory data by specific threads, and visualize allocation patterns through interactive flame graphs. These graphs support temporal inspection, enabling users to analyze memory usage across specific time intervals during execution.

Beyond live monitoring, the tool includes mechanisms for automated memory validation and regression testing. It can detect memory leaks by identifying objects that remain in memory at the end of a session and allows developers to enforce resource consumption thresholds within continuous integration pipelines. The profiler also generates detailed statistics and hierarchical call graphs, which help pinpoint inefficient allocation patterns such as frequent, short-lived object creation.

Features

  • Memory Profiling - Analyzes and optimizes heap allocation patterns in Python applications to identify memory leaks.
  • Memory Profilers - Tracks and visualizes heap allocations in Python and native extensions to identify memory leaks.
  • Memory Profilers - Observing live memory allocation statistics in a terminal interface to understand the immediate impact of specific code operations on system resources.
  • Flame Graph Visualizers - Generates interactive flame graphs from captured profiling data to provide a visual representation of memory consumption.
14,885 stars·434 forks·Python·apache-2.0·30 views
  • Memory Regression - Integrates memory tracking into automated test runs to detect memory regressions or leaks.
  • Memory Leak Detection - Identifies objects remaining in memory at the end of a session to detect potential memory leaks.
  • Native Stack Unwinders - Traverses the call stack of both managed and native code frames to map memory events to specific source code locations.
  • Memory Allocation Tracers - Hooks into low-level memory allocation functions to capture and record heap allocation events.
  • Temporal Memory Profilers - Creates temporal flame graphs to visualize memory usage and allocation patterns across specific time intervals.
  • Live Process Profilers - Connects to an active application to monitor and record memory allocation patterns in real-time.
  • Memory Usage Analyzers - Fails automated tests that exceed defined memory thresholds and provides detailed breakdown of responsible functions.
  • Flame Graph Generators - Transforms raw memory allocation data into interactive flame graphs for analyzing peak memory usage.
  • Performance Regression Analyzers - Integrates memory usage checks into test suites to automatically detect and prevent performance regressions.
  • System Monitoring And Profiling - High-performance memory profiler for tracking allocations in Python.
  • Concurrent Memory Profilers - Tracks memory usage across both Python and native threads to provide a complete view of memory activity.
  • Memory Usage Analysis - Summarizes total allocations and memory distribution to help identify memory-intensive operations.
  • Performance Analysis Tools - Monitors resource consumption and identifies high-impact functions within complex software environments.
  • Real-Time Monitoring Dashboards - Displays live memory usage statistics while code executes to help observe the immediate impact of operations.
  • Child Process Memory Tracers - Automatically captures memory allocation data for child processes created via forks.
  • Concurrent Execution Monitors - Tracks and isolates memory allocation patterns across multiple threads and child processes.
  • Native Memory Lifecycle Management - Captures memory allocation data from native extensions alongside Python code.
  • Thread-Aware Memory Analyzers - Filters memory allocation data by individual threads to isolate and investigate specific memory usage patterns.
  • Allocation Frequency Analyzers - Identifies short-lived or high-frequency object allocations to help pinpoint inefficient memory usage patterns.
  • Native C Interoperability - Traces memory usage across both Python code and native C or C++ extensions.
  • Symbol Resolution Engines - Translates raw memory addresses into human-readable function names and line numbers using debug information.
  • Remote Profiling Interfaces - Connects a monitoring interface to a running application process to observe memory behavior remotely.
  • Stack Trace Hierarchy Visualizers - Displays interactive tree representations of memory allocations at peak usage to identify high-memory source locations.
  • Profiling Visualization Filters - Hides low-level implementation details or internal tool frames from visualization reports to reduce noise and focus on application-level code during performance analysis.
  • Star history

    Star history chart for bloomberg/memrayStar history chart for bloomberg/memray

    How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

    Frequently asked questions

    What does bloomberg/memray do?

    Memray is a memory profiler for Python that tracks heap allocations in both Python code and native C or C++ extensions. It captures memory events by hooking into the language runtime and traversing call stacks, providing a comprehensive view of how an application consumes memory. The tool is designed to minimize performance impact on the target application by using thread-local buffering and streaming data to an external process or file.

    What are the main features of bloomberg/memray?

    The main features of bloomberg/memray are: Memory Profiling, Memory Profilers, Flame Graph Visualizers, Memory Regression, Memory Leak Detection, Native Stack Unwinders, Memory Allocation Tracers, Temporal Memory Profilers.

    Which projects share features with bloomberg/memray?

    Projects with overlapping indexed features include: brendangregg/flamegraph — FlameGraph is a performance profiling and visualization toolkit designed to identify bottlenecks in software… kde/heaptrack — Heaptrack is a heap memory profiler and diagnostic tool for applications running on Linux. It functions as a memory… android/ndk-samples — The Android NDK samples provide a comprehensive collection of code examples demonstrating how to integrate C and C++… gperftools/gperftools — gperftools is a collection of specialized tools for profiling CPU usage, detecting memory errors, and providing… samsaffron/memory_profiler — Memory Profiler is a diagnostic library for Ruby applications designed to monitor runtime memory consumption and… dotnet/benchmarkdotnet — BenchmarkDotNet is a library and tool suite for measuring the execution time and memory allocation of .NET code. It…

    Projects sharing features with Memray

    These projects share indexed features with Memray. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
    • brendangregg/flamegraphbrendangregg avatar

      brendangregg/FlameGraph

      19,307View on GitHub↗

      FlameGraph is a performance profiling and visualization toolkit designed to identify bottlenecks in software execution. It functions as a processing engine that transforms raw stack trace samples into interactive, hierarchical diagrams. By representing aggregated execution frequency as nested rectangles, the tool allows developers to visualize hot code paths and analyze system behavior across both kernel and user-space environments. The project distinguishes itself through its ability to perform differential profile analysis, which highlights performance regressions or improvements by compari

      Perl
      View on GitHub↗19,307
    • kde/heaptrackKDE avatar

      KDE/heaptrack

      4,107View on GitHub↗

      Heaptrack is a heap memory profiler and diagnostic tool for applications running on Linux. It functions as a memory leak detector and performance analysis system that records heap allocations and stack traces to identify memory hotspots and consumption patterns. The project provides a graphical heap allocation visualizer for exploring memory usage through tree views and peak memory reports. It utilizes flame graphs and allocation charts to visualize memory hotspots and assist in the detection of leaks. The toolset includes capabilities for heap memory allocation tracing and the generation of

      C++
      View on GitHub↗4,107
    • android/ndk-samplesandroid avatar

      android/ndk-samples

      10,513View on GitHub↗

      The Android NDK samples provide a comprehensive collection of code examples demonstrating how to integrate C and C++ native code into Android applications. This repository serves as a practical guide for developers utilizing the Android Native Development Kit to implement performance-critical application components that require direct hardware access and low-level system interaction. The project highlights the use of the Java Native Interface to bridge managed code with native modules, enabling cross-language function calls and efficient data exchange. It demonstrates how to manage native act

      C++
      View on GitHub↗10,513
    • gperftools/gperftoolsgperftools avatar

      gperftools/gperftools

      8,959View on GitHub↗

      gperftools is a collection of specialized tools for profiling CPU usage, detecting memory errors, and providing high-performance memory allocation. It provides a memory profiling toolkit for C++ applications, including a sampling CPU profiler and a heap profiler for analyzing consumption patterns. The project includes a high-performance memory allocator designed as a multi-threaded replacement for standard allocation to reduce contention and improve execution speed. It further provides a memory debugger to identify illegal memory access and double frees. The toolkit covers broad diagnostic c

      C++
      View on GitHub↗8,959
    Compare all 30 related projects→