Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jmdana/memprof
A memory profiler for Python. As easy as adding a decorator!
https://github.com/jmdana/memprof
memory profiler python
Last synced: 11 days ago
JSON representation
A memory profiler for Python. As easy as adding a decorator!
- Host: GitHub
- URL: https://github.com/jmdana/memprof
- Owner: jmdana
- License: gpl-3.0
- Created: 2013-06-18T10:53:36.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2021-09-14T18:38:40.000Z (about 3 years ago)
- Last Synced: 2024-09-20T06:44:00.639Z (about 2 months ago)
- Topics: memory, profiler, python
- Language: Python
- Homepage: http://jmdana.github.io/memprof/
- Size: 634 KB
- Stars: 127
- Watchers: 8
- Forks: 10
- Open Issues: 4
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
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 installor ::
sudo pip install git+https://github.com/jmdana/memprof
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 memprof
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 -m memprof -pWhich, in addition to the logfile, will generate a plot (``foo.png``):
.. figure:: examples/foo.png
:alt: Example plotThe 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 -m memprof -t 1024The ``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 [email protected]
- Once subscribed, you can send emails to [email protected]
- List archives at http://groups.google.com/group/memprof--------------
Copyright 2013-2019, Jose M. Dana