This is a python module for monitoring memory consumption of a process as well as line-by-line analysis of memory consumption for python programs.
To install through easy_install or pip:
$ easy_install -U memory_profiler # pip install -U memory_profiler
To install from source, download the package, extract and type:
$ python setup.py install
The line-by-line profiler is used much in the same way of the line_profiler: you must first decorate the function you would like to profile with @profile:
@profile
def my_func():
a = np.zeros((100, 100))
b = np.zeros((1000, 1000))
c = np.zeros((10000, 1000))
return a, b, c
then execute the code passing the option "-m memory_profiler" to the python interpreter to load the memory_profiler module and "-l -v" to do a line-by-line analysis and print the result. If the file name was example.py, this would result in:
$ python -m memory_profiler -l -v example.py
Output will follow:
Line # Mem usage Line Contents
===================================
3 @profile
4 14.19 MB def my_func():
5 14.27 MB a = np.zeros((100, 100))
6 21.91 MB b = np.zeros((1000, 1000))
7 98.20 MB c = np.zeros((10000, 1000))
8 98.20 MB return a, b, c
Maybe also print the increment in memory consumption.
Latest sources are available from github:
Author: Fabian Pedregosa <fabian@fseoane.net> License: Simplified BSD