Skip to content

About

vmprof - a statistical program profiler

Topics

Resources

Stars

440 stars

Watchers

12 watching

Forks

 
 

Repository files navigation

VMprof Python client

Build Status on TravisCI Build Status on TeamCity Read The Docs

See https://vmprof.readthedocs.org for up to date info

Basic usage

###Linux

sudo apt-get install python-dev
pip install vmprof
python -m vmprof <your program> <your program args>

###Windows Install Microsoft Visual C++ Compiler for Python 2.7

pip install vmprof

Development

Setting up development can be done using the following commands:

$ virtualenv -p /usr/bin/python3 vmprof3
$ source vmprof3/bin/activate
$ python setup.py develop

Now it is time to write a test and implement your feature. If you want your changes to affect vmprof.com, please head over to https://github.com/vmprof/vmprof-server and follow the setup instructions.

Please also consult our section for development at https://vmprof.readthedocs.org.

vmprofshow

vmprofshow is a command line tool that comes with VMprof which can read profile files generated by VMprof and produce a nicely formatted output.

Here is an example of how to use:

Clone the vmprof repo first to use a minimalistic cpuburn.py:

git clone https://github.com/vmprof/vmprof-python
cd vmprof-python

Run that smallish program which burns CPU cycles (with vmprof enabled):

python tests/cpuburn.py

This will produce a profile file vmprof_cpuburn.dat.

Now display the profile:

vmprofshow vmprof_cpuburn.dat

You will see a (colored) output:

oberstet@thinkpad-t430s:~/scm/vmprof-python$ vmprofshow vmprof_cpuburn.dat
100.0%  <module>  100.0%  tests/cpuburn.py:1
100.0% .. test  100.0%  tests/cpuburn.py:35
100.0% .... burn  100.0%  tests/cpuburn.py:26
 99.2% ...... _iterate  99.2%  tests/cpuburn.py:19
 97.7% ........ _iterate  98.5%  tests/cpuburn.py:19
 22.9% .......... _next_rand  23.5%  tests/cpuburn.py:14
 22.9% ............ JIT code  100.0%  0x7fa7dba57a10
 74.7% .......... JIT code  76.4%  0x7fa7dba57a10
  0.1% .......... JIT code  0.1%  0x7fa7dba583b0
  0.5% ........ _next_rand  0.5%  tests/cpuburn.py:14
  0.0% ........ JIT code  0.0%  0x7fa7dba583b0

Line profiling

vmprof supports line profiling mode, which enables collecting and showing the statistics for separate lines inside functions.

To enable collection of lines statistics add --lines argument to vmprof:

python -m vmprof --lines -o <output-file> <your program> <your program args>

Or pass lines=True argument to vmprof.enable function, when calling vmprof from code.

To see line statistics for all functions add the --lines argument to vmprofshow:

vmprofshow --lines <output-file>

To see line statistics for a specific function use the --filter argument with the function name:

vmprofshow --lines --filter <function-name> <output-file>

You will see the result:

macbook-pro-4:vmprof-python traff$ vmprofshow --lines --filter _next_rand vmprof_cpuburn.dat
Total hits: 1170 s
File: tests/cpuburn.py
Function: _next_rand at line 14

Line #     Hits   % Hits  Line Contents
=======================================
    14       38      3.2      def _next_rand(self):
    15                            # http://rosettacode.org/wiki/Linear_congruential_generator
    16      835     71.4          self._rand = (1103515245 * self._rand + 12345) & 0x7fffffff
    17      297     25.4          return self._rand

About

vmprof - a statistical program profiler

Topics

Resources

Stars

440 stars

Watchers

12 watching

Forks

Releases

Packages

Used by

Contributors

Languages