awesome-repositories.com
Blog
awesome-repositories.com

Descoperă cele mai bune repository-uri open source cu căutare AI.

ExploreazăCăutări recomandateAlternative open-sourceSoftware self-hostedBlogHartă site
ProiectDespreCum realizăm clasamentulPresăServer MCP
LegalConfidențialitateTermeni
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
joerick avatar

joerick/pyinstrument

0
View on GitHub↗
7,638 stele·257 fork-uri·Python·bsd-3-clause·6 vizualizăripyinstrument.readthedocs.io↗

Pyinstrument

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 interactive notebooks.

The tool covers a broad range of analysis capabilities, including C-function execution tracking, session management for saving and reloading data, and the ability to filter out irrelevant library frames using glob patterns. It can be used via a programmatic interface with decorators and context managers, or as a command-line tool to analyze scripts and web requests.

Features

  • Python Profilers - Identifies slow functions and bottlenecks in Python code by sampling the call stack and measuring wall-clock time.
  • Execution Stack Samplers - Identifies performance bottlenecks by sampling the call stack at regular intervals with low overhead.
  • Async Timing Attribution - Tracks time spent awaiting asynchronous tasks to accurately profile code execution across different contexts.
  • Runtime Call-Stack Capturers - Captures the runtime call stack to identify the source of execution delays.
  • Asynchronous Profilers - Tracks execution context in asynchronous programs to attribute time spent awaiting tasks.
  • Asynchronous Attribution - Attributes time spent awaiting asynchronous tasks to the calling function to ensure accurate profiles in concurrent programs.
  • Asynchronous Programming Patterns - Tracks time spent awaiting tasks in async Python code to understand where an event loop is blocked.
  • Wall-Clock Time Measurement - Tracks total elapsed time including I/O operations and external service calls.
  • Function Execution Timing - Records the execution time of functions and modules to identify performance bottlenecks.
  • Call Graph Visualizers - Converts captured execution data into interactive HTML reports, JSON, and flamecharts for performance analysis.
  • Statistical Profilers - Uses a sampling profiler that records the Python call stack at regular intervals to identify performance bottlenecks with low overhead.
  • Wall-Clock Time Profilers - Tracks total elapsed time including I/O and external service calls rather than just CPU cycles.
  • Application Debugging - Finds the root cause of execution delays in scripts or modules to improve overall program speed.
  • Call Tree Aggregators - Groups repeated function calls into a hierarchical tree structure to simplify the analysis of complex execution paths.
  • CLI Profiling Tools - Enables executing scripts from the terminal to generate immediate performance reports.
  • Code Instrumentation Utilities - Provides a programmatic interface to instrument functions and methods for performance monitoring.
  • External Script Analyzers - Analyzes scripts, modules, or code strings from the terminal without requiring changes to original source files.
  • Cell-Level Profiling - Allows profiling specific code cells within interactive notebooks using specialized commands.
  • Notebook Profilers - Provides a performance measurement tool for analyzing execution time of individual cells within interactive Python notebooks.
  • Notebook Performance Optimization - Measures the execution time of specific cells within interactive notebooks to optimize data science workflows.
  • Script Performance Analysis - Analyzes execution time for scripts run from the command line to summarize time distribution.
  • Internal Frame Filters - Removes noise from performance reports by excluding specific library or system frames using glob pattern matching.
  • Web Request Profiling - Analyzes the call stack of HTTP requests to generate performance reports for web-based traffic.
  • Code Block Timing - Measures elapsed time for specific segments of code using context managers or decorators.
  • Performance Metric Exports - Exports captured performance data into HTML, JSON, and trace files for external visualization.
  • Profiling Visualization Filters - Hides irrelevant library frames and modules using glob patterns to focus on application code.
  • Web Request Profilers - Analyzes the call stack of HTTP requests to find slow operations in web applications and APIs.
  • Performance Profiling - Call stack profiler for Python code.
  • System Monitoring And Profiling - Call stack profiler that identifies performance bottlenecks.

Istoric stele

Graficul istoricului de stele pentru joerick/pyinstrumentGraficul istoricului de stele pentru joerick/pyinstrument

Căutare AI

Explorează mai multe repository-uri excelente

Descrie ce ai nevoie în limbaj simplu — AI-ul sortează mii de proiecte open source selectate în funcție de relevanță.

Start searching with AI

Întrebări frecvente

Ce face joerick/pyinstrument?

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.

Care sunt principalele funcționalități ale joerick/pyinstrument?

Principalele funcționalități ale joerick/pyinstrument sunt: Python Profilers, Execution Stack Samplers, Async Timing Attribution, Runtime Call-Stack Capturers, Asynchronous Profilers, Asynchronous Attribution, Asynchronous Programming Patterns, Wall-Clock Time Measurement.

Care sunt câteva alternative open-source pentru joerick/pyinstrument?

Alternativele open-source pentru joerick/pyinstrument includ: plasma-umass/scalene — Scalene is a high-performance diagnostic utility designed to measure resource consumption during the execution of… benfred/py-spy — py-spy is a sampling profiler and process debugger for Python. It allows for the analysis of running processes to… google/perfetto — Perfetto is a platform for system-level performance tracing and analysis on Linux and Android. It combines a… what-studio/profiling — This project is a performance analysis suite for Python applications, providing tools for both application-wide… iovisor/bcc — BCC is an eBPF development toolkit and tracing framework used for monitoring and analyzing the Linux kernel. It… gperftools/gperftools — gperftools is a collection of specialized tools for profiling CPU usage, detecting memory errors, and providing…

Alternative open-source pentru Pyinstrument

Proiecte open-source similare, clasificate după numărul de funcționalități comune cu Pyinstrument.
  • plasma-umass/scaleneAvatar plasma-umass

    plasma-umass/scalene

    13,449Vezi pe 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
    Vezi pe GitHub↗13,449
  • benfred/py-spyAvatar benfred

    benfred/py-spy

    15,272Vezi pe GitHub↗

    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 capa

    Rustperformance-analysisprofilerprofiling
    Vezi pe GitHub↗15,272
  • google/perfettoAvatar google

    google/perfetto

    5,558Vezi pe GitHub↗

    Perfetto is a platform for system-level performance tracing and analysis on Linux and Android. It combines a high-throughput trace recorder, a SQL-based query engine, and a browser-based visualizer into a single toolchain. The platform covers CPU scheduling and call-stack profiling, native and Java heap memory allocation tracking, GPU and graphics events, and system-wide counters such as CPU frequency and power consumption. The architecture decouples trace recording from offline analysis, using a compact protobuf format for event encoding and columnar storage for efficient SQL queries. The we

    C++
    Vezi pe GitHub↗5,558
  • what-studio/profilingAvatar what-studio

    what-studio/profiling

    2,937Vezi pe GitHub↗

    This project is a performance analysis suite for Python applications, providing tools for both application-wide profiling and granular code benchmarking. It enables developers to identify execution bottlenecks and measure function call frequency through a combination of deterministic tracing and statistical sampling methods. The tool distinguishes itself by offering a terminal-based interactive interface that allows for real-time navigation and filtering of complex call stacks. It supports non-intrusive data collection through signal-based process interception, enabling performance monitoring

    Pythondebuglive-profilingprofiling
    Vezi pe GitHub↗2,937
  • Vezi toate cele 30 alternative pentru Pyinstrument→