snakeviz
A web-based viewer for Python profiler output
What it is and what it does
SnakeViz is a web application that visualizes Python profiling output in your browser. It takes profiling data generated by Python's standard cProfile or profile module and renders it as an interactive hierarchy showing which functions consumed the most time and how they called one another. The tool runs a local web server (powered by tornado) and displays the call tree in a format inspired by RunSnakeRun, making it easy to spot performance bottlenecks without leaving your browser.
The package is designed for developers who need to understand where their Python code spends execution time. You generate a profile using Python's built-in profiling tools, then point SnakeViz at the output file. It handles the visualization and interaction, letting you drill down into call stacks and compare time spent across different code paths.
Use it for:
- Identify performance bottlenecks in a Python application by visualizing which functions consume the most CPU time.
- Explore call hierarchies interactively to understand how functions call one another and where time is actually spent.
- Compare profiling runs across different code versions to see if optimizations had the intended effect.
- Debug slow batch jobs or data processing pipelines by profiling them and examining the results in a browser.
- Share profiling results with team members by exporting or viewing the web interface on a shared machine.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
SnakeViz is a web-based viewer for Python profiling data that displays call stacks and execution time hierarchies in an interactive browser interface.
Yes. SnakeViz is a mature, actively maintained tool with low install friction, no security vulnerabilities, and a permissive license. It solves a real problem—making Python profiling data readable—and integrates seamlessly with Python's standard profiling workflow. Install it if you regularly profile Python code and want a better way to explore the results than command-line tools.
Install
snakeviz on PyPI
pip
pip install snakevizuv
uv add snakevizpoetry
poetry add snakevizInstalling snakeviz
Before you install
Low install friction with a single runtime dependency (tornado). Actively maintained with recent commits and broad Python version support (3.9–3.13). Repository is not archived and has accumulated 2568 stars.
License in practice
BSD License (permissive). You may use, modify, and distribute the software freely in source or binary form, provided you retain the copyright notice and disclaimer; you cannot use the author's name to endorse derived products.
Quickstart
pip install snakeviz
# After profiling with cProfile or profile module:
snakeviz profile_output.prof
Requires Python 3.9 or later. Profiling data must be generated separately using Python's built-in cProfile or profile module before visualization.
Verify before relying
- Whether the web interface requires a specific browser or has known compatibility constraints.
- Whether snakeviz can handle very large profiling datasets without performance degradation.
Package facts
| License | Copyright (c) 2012, Matt Davis All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: -… (full text in the JSON record) (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — tornado |
| Maintenance | actively maintained — 643 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 2,682,897/month — #2,941 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: snakeviz-2.2.2-py3-none-any.whl
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
tunatuna visualizes Python performance profiles in…
copyleft · top 15,000 on PyPI
py-spypy-spy is a sampling profiler that attaches to…
permissive · top 1,000 on PyPI
djdt-flamegraphIntegrates flame graph visualization into…
permissive · top 15,000 on PyPI
mjvisermjviser is a web-based viewer for MuJoCo…
permissive · top 15,000 on PyPI
yappiYappi is a deterministic profiler for Python…
permissive · top 5,000 on PyPI
flameprofConverts Python cProfile statistics into…
permissive · top 15,000 on PyPI
viztracerVizTracer traces Python code execution and…
permissive · top 5,000 on PyPI
django-silkSilk intercepts and profiles HTTP requests,…
permissive · top 5,000 on PyPI
line-profilerline_profiler measures execution time on a…
permissive · top 5,000 on PyPI
httpdbghttpdbg intercepts and displays HTTP(S)…
permissive · top 15,000 on PyPI