vprof

by nvdv

nvdv / vprof

Visual profiler for Python

3.7K Stars 169 Forks Last release: Not found BSD 2-Clause "Simplified" License 616 Commits 19 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

PyPI

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

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

Screenshots

vprof-gif

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 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
requirements.txt
.

Installation

vprof
can be installed from PyPI
pip install vprof

To build

vprof
from sources, clone this repository and execute
python3 setup.py deps_install && python3 setup.py build_ui && python3 setup.py install

To install just

vprof
dependencies, run
python3 setup.py deps_install

Usage

vprof -c  

 is a combination of supported modes:

  • c
    - CPU flame graph ⚠️ Not available for windows #62

Shows CPU flame graph for

.

  • p
    - profiler

Runs built-in Python profiler on

 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

.

  • h
    - code heatmap

Displays all executed code of

 with line run times and execution counts.

 can be Python source file (e.g. 
testscript.py
) or path to package (e.g.
myproject/test_package
).

To run scripts with arguments use double quotes

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 -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): ...

runner.run(foo, '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 src.py --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

python3 setup.py test_python && python3 setup.py test_javascript && python3 setup.py e2e_test

License

BSD

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.