profiling-explorer brings a tidy, table-first UI to Python pstats files

April 6, 2026
Laptop showing data graphs on wooden table with cardboard boxes, depicting a small business office setting.
Photo by Kampus Production on Pexels

profiling-explorer arrives

Adam Johnson has released profiling-explorer, a small but thoughtful tool for exploring Python pstats files with a spreadsheet-style interface. It copies the familiar pstats layout—functions on the right, metrics on the left—but smooths out the rough edges: clearer column names, times always shown in milliseconds, dark mode, and quick-copy filename/line buttons so you can jump straight into the code. It has been reported that the project was sponsored by Rippling, continuing a recent streak of profiling and tooling work from the author.

Features at a glance

Sorting, searching, and caller/callee links are the real story. Click any column header (calls, internal ms, cumulative ms) to reorder. Filter by filename or function name to shrink a giant table down to the few functions you actually care about. Hover to copy a location to your clipboard. It’s simple, but immediacy matters: a table lets you skim, compare, and triage hotspots fast—no graph-fiddling, no wrestling with a clunky CLI. Want to inspect Django migrations? Type a path and isolate the migration subsystem. Fast feedback, less friction.

Why this matters now

Profiling in Python is changing. It has been reported that Python 3.15 will include a new sampling profiler (nicknamed “Tachyon”), and profiling-explorer already reads the pstats format used across profilers, so the tool is ready for that future. Sampling profilers reduce overhead and the distortion that per-call tracing can introduce; that’s a big deal when you’re optimizing real systems rather than microbenchmarks. For teams tired of sudo-hacker workflows with third-party samplers, having batteries-included tooling and a clean table interface could shave hours off iterative performance work. Who doesn’t want that?

Sources: adamj.eu, Lobsters