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
benfred avatar

benfred/py-spy

0
View on GitHub↗

Py Spy

py-spy is a sampling profiler and process debugger for Python. It allows for the analysis of running processes to identify performance bottlenecks and diagnose hanging programs without requiring code changes or restarts.

The tool operates by reading the memory of a running process from the outside, which enables non-invasive sampling and state collection without pausing execution. It can resolve binary symbols to capture performance data from native extensions written in compiled languages and generate visual flame graphs for both native extensions and subprocesses.

The project provides capabilities for real-time process monitoring, execution profiling, and thread call stack dumping. These utilities allow for the inspection of local variables and call stacks across all active threads to identify deadlocks or infinite loops.

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

Features

  • Python Profilers - Identifies slow functions and execution bottlenecks in running Python programs without modifying source code.
  • Native Stack Unwinders - Traverses call stacks across managed and native code boundaries to resolve function names and line numbers.
  • Thread Dumps - Provides snapshots of active threads and their local variables to diagnose deadlocks and infinite loops in running processes.
  • Non-Pausing State Sampling - Reads interpreter state while the program continues to run to eliminate execution interruptions during data collection.
  • Out-of-Process Sampling - Collects performance data by reading a running process's memory from the outside without interrupting execution.
  • User-Space Memory Inspection - Reads a process's user-space memory addresses directly to analyze the call stack without modifying the target code.
  • Symbol Resolution Engines - Maps raw memory addresses to human-readable function names by parsing binary debug information from native extensions.
  • Process Debuggers - Dumps call stacks and local variables from every thread to identify and diagnose hanging processes.
  • Thread State Extractors - Iterates through all active threads to capture individual execution paths and local variable states for debugging.
  • Production Program Sampling - Analyzes the behavior of running Python applications in production without pausing execution or restarting services.
  • Non-Invasive Program Sampling - Samples the execution of running processes to identify bottlenecks without requiring code changes or restarts.
  • Native Extension Profiling - Captures performance data from extensions written in compiled languages by reading symbols from the binary.
  • Runtime Offset Bindings - Locates internal runtime structures by calculating version-specific memory offsets for compatibility across different Python interpreters.
  • Live Execution Monitoring - Displays a real-time view of functions consuming the most time in a running program.
  • Runtime Binding Generators - Generates low-level bindings for multiple runtime versions using offset calculations to ensure environment compatibility.
  • Real Time Process Monitors - Provides a real-time view of functions consuming the most CPU time in a live Python process.
  • Flame Graph Generators - Converts stack trace data into interactive flame graphs for analyzing the performance of native extensions and subprocesses.
  • Execution Profilers - Records execution data to files to generate performance visualizations like flame graphs.
  • Debugging And Profiling - Sampling profiler for Python programs.
  • Debugging Tools - Listed in the “Debugging Tools” section of the Awesome Python awesome list.
  • Performance Profiling - Sampling profiler for Python applications.
  • System Monitoring And Profiling - Sampling profiler that visualizes execution without stopping the program.
15,272 stars·526 forks·Rust·MIT·18 views

Star history

Star history chart for benfred/py-spyStar history chart for benfred/py-spy

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 benfred/py-spy do?

py-spy is a sampling profiler and process debugger for Python. It allows for the analysis of running processes to identify performance bottlenecks and diagnose hanging programs without requiring code changes or restarts.

What are the main features of benfred/py-spy?

The main features of benfred/py-spy are: Python Profilers, Native Stack Unwinders, Thread Dumps, Non-Pausing State Sampling, Out-of-Process Sampling, User-Space Memory Inspection, Symbol Resolution Engines, Process Debuggers.

Which projects share features with benfred/py-spy?

Projects with overlapping indexed features include: plasma-umass/scalene — Scalene is a high-performance diagnostic utility designed to measure resource consumption during the execution of… bloomberg/memray — Memray is a memory profiler for Python that tracks heap allocations in both Python code and native C or C++… joerick/pyinstrument — pyinstrument is a statistical sampling profiler for Python that records the call stack at regular intervals to… mstange/samply — Samply is a cross-platform CPU sampling profiler and performance analysis utility. It consists of a command-line tool… iqiyi/xcrash — xCrash is an Android crash reporting SDK and diagnostic tool designed to monitor application health. It captures Java… gallopsled/pwntools — Pwntools is a Python-based framework designed for rapid prototyping and automation in binary exploitation, reverse…

Projects sharing features with Py Spy

These projects share indexed features with Py Spy. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • plasma-umass/scaleneplasma-umass avatar

    plasma-umass/scalene

    13,449View on GitHub↗

    Scalene is a high-performance diagnostic utility designed to measure resource consumption during the execution of Python applications. It functions as a line-level monitor, providing granular insights that pinpoint the specific source code responsible for performance overhead. The tool distinguishes itself through statistical profiling that captures stack traces and resource usage without requiring manual instrumentation of the source code. It tracks CPU, GPU, and memory consumption by intercepting library-level calls and hardware driver commands, allowing for the analysis of both managed and

    Pythoncpucpu-profilinggpu
    View on GitHub↗13,449
  • bloomberg/memraybloomberg avatar

    bloomberg/memray

    14,885View on GitHub↗

    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 util

    Pythonhacktoberfestmemorymemory-leak
    View on GitHub↗14,885
  • joerick/pyinstrumentjoerick avatar

    joerick/pyinstrument

    7,638View on GitHub↗

    pyinstrument is a statistical sampling profiler for Python that records the call stack at regular intervals to identify performance bottlenecks with low overhead. It tracks wall-clock time, including I/O and external service calls, and provides specialized profiling for asynchronous programs by attributing time spent awaiting tasks to the calling function. The project converts captured execution data into interactive HTML reports, JSON, and flamecharts. It includes a call stack visualizer to simplify the analysis of execution paths and supports the profiling of individual cells within interac

    Pythonasyncdjangoperformance
    View on GitHub↗7,638
  • mstange/samplymstange avatar

    mstange/samply

    4,263View on GitHub↗

    Samply is a cross-platform CPU sampling profiler and performance analysis utility. It consists of a command-line tool for recording process stack traces at regular intervals and a visual interface for analyzing the resulting execution data. The system includes a debug symbol resolver that maps raw memory addresses to human-readable function names using local or remote symbol information. It transforms recorded execution data into flame graphs and timelines to pinpoint function-level hotspots. The tool provides capabilities for CPU execution recording, stack unwinding, and symbol resolution a

    Rust
    View on GitHub↗4,263
Compare all 30 related projects→