Skip to main content

Visual profiler for Python

Project description

[![Build Status](](

# vprof

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+ and distributed under BSD license.

The project is in active development and some of its features might not work as

## Screenshots

## Contributing
All contributions are highly encouraged! You can add new features,
report and fix existing bugs and write docs and tutorials.
Feel free to open an issue or send a pull request!

## Prerequisites
Dependencies to build `vprof` from source code:
* Python 2.7 or Python 3.4+
* `pip`
* `npm` >= 3.3.12

`npm` is required to build `vprof` from sources only.

## Dependencies
All Python and `npm` module dependencies are listed in `package.json` and

## Installation
`vprof` can be installed from PyPI

pip install vprof

To build `vprof` from sources, clone this repository and execute

python deps_install && python build_ui && python install

To install just `vprof` dependencies, run

python deps_install

## Usage

vprof -c <config> <src>
`<config>` is a combination of supported modes:

* `c` - CPU flame graph

Shows CPU flame graph for `<src>`.

* `p` - profiler

Runs built-in Python profiler on `<src>` and displays results.

* `m` - memory graph

Shows objects that are tracked by CPython GC and left in memory after code
execution. Also shows process memory usage after execution of each line of `<src>`.

* `h` - code heatmap

Displays all executed code of `<src>` with line run times and execution counts.

`<src>` can be Python source file (e.g. ``) or path to package
(e.g. `myproject/test_package`).

To run scripts with arguments use double quotes

vprof -c cmh " --foo --bar"

Modes can be combined

vprof -c cm

`vprof` can also profile functions. In order to do this,
launch `vprof` in remote mode:

vprof -r

`vprof` will open new tab in default web browser and then wait for stats.

To profile a function run

from vprof import runner

def foo(arg1, arg2):
..., 'cmhp', args=(arg1, arg2), host='localhost', port=8000)

where `cmhp` is profiling mode, `host` and `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 stats to file and render visualizations from
previously saved file.

vprof -c cmh --output-file profile.json

writes profile to file and

vprof --input-file profile.json
renders visualizations from previously saved file.

Check `vprof -h` for full list of supported parameters.

To show UI help, press `h` when visualizations are displayed.

Also you can check `examples` directory for more profiling examples.

## Testing

python test && python e2e_test

## License


Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for vprof, version 0.37.5
Filename, size File type Python version Upload date Hashes
Filename, size vprof-0.37.5-py3-none-any.whl (318.6 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size vprof-0.37.5.tar.gz (317.3 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page