File: README.md

package info (click to toggle)
python-memprof 0.3.3-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 232 kB
  • ctags: 80
  • sloc: python: 338; makefile: 7; sh: 2
file content (96 lines) | stat: -rw-r--r-- 2,655 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# memprof

`memprof` is a memory profiler for Python. 

It logs and plots the memory usage of all the variables during the execution of the decorated methods.

## Installation
### Stable
    sudo pip install --upgrade memprof
    
or

    sudo easy_install --upgrade memprof
 
or (Debian testing/unstable)

    sudo apt-get install python-memprof
       
### Development
    
    git clone git://github.com/jmdana/memprof.git
    cd memprof
    sudo python setup.py install

## Usage

Using `memprof` is as easy as adding a decorator to the methods that you want to profile:

    @memprof
    def foo():
    
And importing the module just by including the line below at the beginning of your Python file:

    from memprof import *

Now you can run as usual and logfiles with the names of your methods will be created (e.g. `foo.log`).

### Generating plots

The logfiles are not very interesting so you might prefer to use the `-p`/`--plot` flag:
    
    python -m memprof --plot <python_file>
    python -m memprof -p <python_file>
    
Which, in addition to the logfile, will generate a plot (`foo.png`):

![Image](examples/foo.png)

The grey bar indicates that the `foo` method wasn't running at that point.

The flag may also be passed as an argument to the decorator:

    @memprof(plot = True)

Please keep in mind that the former takes precedence over the latter.

### Adjusting the threshold

You may also want to specify a `threshold`. The value will be the minimum size for a variable to appear in the plot (but it will always appear in the logfile!). The default value is 1048576 (1 MB) but you can specify a different `threshold` (in bytes) with the `-t`/`--threshold` flag:

    python -m memprof --threshold 1024 <python_file>
    python -m memprof -t 1024 <python_file>
    
The `threshold` may also be passed as an argument to the decorator:

    @memprof(threshold = 1024)

Please keep in mind that the former takes precedence over the latter.    

### mp_plot 

If, after running `memprof`, you want to change the threshold and generate a new plot (or you forgot to use the `-p`/`--plot` flag with `memprof`), you don't have to re-run! Just call the command:
    
    mp_plot [-h] [-t THRESHOLD] logfiles [logfiles ...]
    
and generate the plots again doing something like:

    mp_plot -t 128 logfile1.log logfile2.log
    
or:
 
    mp_plot -t 1024 *.log
    
etc.

## Contact

### Mailing list

* Subscribe by sending a message to <memprof+subscribe@googlegroups.com>
* Once subscribed, you can send emails to <memprof@googlegroups.com>
* List archives at http://groups.google.com/group/memprof

---
Copyright 2013, Jose M. Dana