py-spy
github.com
Spec sheet
- Purpose
- py-spy is a sampling profiler for Python programs that visualizes where a program spends time without restarting it or changing its code.Read 5 Oct 2026 · github.com
- License
- The repository says py-spy is released under the MIT License.Read 5 Oct 2026 · github.com
- Commands
- The command line has `record`, `top`, and `dump` subcommands for saving profiles, viewing live activity, and displaying thread call stacks.Read 5 Oct 2026 · github.com
- Containers
- For Docker and Kubernetes, the README says py-spy needs the `SYS_PTRACE` capability to read process memory.Read 5 Oct 2026 · github.com
- Installation
- The project documents installation through PyPI with pip, GitHub release binaries, Cargo, Homebrew, Arch AUR, and Alpine packages.Read 5 Oct 2026 · github.com
- Low overhead
- It is written in Rust and runs outside the profiled Python process, which the project says makes it safe to use against production Python code.Read 5 Oct 2026 · github.com
- Native extensions
- The README says py-spy can profile native Python extensions written in C, C++, or Cython on some platforms.Read 5 Oct 2026 · github.com
- Nonblocking mode
- The `--nonblocking` option avoids pausing the target process, though the README notes it can cause sampling errors or partial stack frames.Read 5 Oct 2026 · github.com
- Permissions
- Attaching to a process may require elevated permissions; the README says macOS always requires root and Linux commonly requires root when attaching to a non-child process.Read 5 Oct 2026 · github.com
- Profile outputs
- `record` can create flame graphs, speedscope profiles, or raw data, and release notes also list Chrome trace format support.Read 5 Oct 2026 · github.com
- Python support
- The README says it supports recent CPython versions 2.3–2.7 and 3.3–3.14.Read 5 Oct 2026 · github.com
- Security reporting
- The security policy asks users to report vulnerabilities by email and says only the most recent version receives security updates.Read 5 Oct 2026 · github.com
- Subprocesses
- With `--subprocesses`, `record` or `top` can include child Python processes, such as multiprocessing or gunicorn workers.Read 5 Oct 2026 · github.com
Plans and prices
py-spy Free MIT-licensed; sampling profiler for Python programs Read 5 Oct 2026 · github.com
Where Specifiction places it
- Profiling Software#21 of 297.4