Skip to content

adamchainz/profiling-explorer

Repository files navigation

profiling-explorer

https://img.shields.io/github/actions/workflow/status/adamchainz/profiling-explorer/main.yml.svg?branch=main&style=for-the-badge https://img.shields.io/badge/Coverage-70%25-success?style=for-the-badge https://img.shields.io/pypi/v/profiling-explorer.svg?style=for-the-badge https://img.shields.io/badge/code%20style-black-000000.svg?style=for-the-badge pre-commit

Table-based exploration tool for Python profiling data (pstats files).

profiling-explorer screenshot

Read more in the introductory blog post.


Get better at command line Git with my book Boost Your Git DX.


Requirements

Python 3.10 to 3.14 supported.

Installation

  1. Install with pip:

    python -m pip install profiling-explorer

Usage

profiling-explorer reads pstats files as generated by Python’s profilers: profiling.tracing (called cProfile on Python < 3.15) and profiling.sampling (new in Python 3.15). To use it, first generate a profile file, for example by running your program under cProfile:

$ python -m cProfile -o example.pstats example.py

(Also runnable as python -m profiling.tracing instead on Python 3.15+.)

Then run profiling-explorer with the generated file:

$ profiling-explorer example.pstats

The report will open in your web browser, and you can explore the profile data with the interactive interface. Features:

  • Click the calls, internal ms, or cumulative ms column headers to sort by that column.
  • Use the search box to filter by filename or function name. Separate multiple search terms by spaces to match records that contain all terms.
  • Press a keyboard shortcut to focus the search box: /, Control+K, or Command+K. Select some text first, like a filename, to pre-fill the search box with that text.
  • Hover by a filename + line number pair to reveal the copy button, which copies the location to your clipboard for faster opening.
  • Click the callers or callees links on the right of a row to see the callers or callees of that function.

Full help:

usage: profiling-explorer [-h] [--port PORT] [--dev] FILE

positional arguments:
  FILE         The pstats data file to explore.

options:
  -h, --help   show this help message and exit
  --port PORT  Port for the local web server (default: 8099).
  --dev        Run in development mode (enables server reload and debug mode).

About

Table-based exploration tool for Python profiling data (pstats files).

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors