vprof is a Python package providing rich and interactive visualizations for various Python program characteristics such as running time and memory usage. It supports Python 2.7, Python 3.4, Python 3.5 and distributed under BSD license.
The project is in active development and some of its features might not work as expected.
All contributions are highly encouraged! You can add new features, report and fix existing bugs and write docs and tutorials. Feel free to open issue or send pull request!
The required dependencies to build
vprof from source code:
- Python 2.7, Python 3.4 or Python 3.5
npm is required to build
vprof from sources only.
All Python and
npm module dependencies are listed in
vprof can be installed from PyPI
pip install vprof
vprof from sources, clone this repository and execute
python setup.py deps_install && python setup.py build_ui && python setup.py install
To install just
vprof dependencies, run
python setup.py deps_install
vprof -c <modes> <program>
<modes> is a combination of supported modes:
c- CPU flame graph.
Shows CPU flame graph for
m- memory graph.
Shows objects that are tracked by CPython GC and left in memory after code execution. Also shows process memory usage during execution of each line of
h- code heatmap.
Displays all executed code of
<program> with line execution count.
<program> can be Python source file (e.g.
testscript.py) or path to package (e.g.
Use double quotes to run scripts with arguments:
vprof -c cmh "testscript.py --foo --bar"
Modes can be combined
vprof -c cm testscript.py
vprof can also profile functions. In order to do this, launch
vprof in remote mode:
vprof will open new tab in default web browser and then wait for stats.
To profile a function run
from vprof import profiler def foo(arg1, arg2): ... profiler.run(foo, 'cmh', args=(arg1, arg2), host='localhost', port=8000)
cmh is profiling mode,
port are hostname and port of
vprof server launched in remote mode. Obtained stats will be rendered in new tab of default web browser, opened by
vprof -r command.
vprof can save profile to file and render profile from file.
vprof -c cmh --output-file profile.json
writes profile to file and
vprof --input-file profile.json
renders visualizations from previously saved file.
vprof -h for full list of supported parameters.
To show UI help, press
h when visualizations are displayed in browser.
Also you can check
examples directory for more profiling examples.
python setup.py test && python setup.py e2e_test