Skip to content
Inspect memory usage of python functions
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
README.rst [doc] install notes Sep 20, 2015
memspector.py [fix] handle inspected commands switches Sep 22, 2015
setup.py [ver] 0.1.2 Sep 20, 2015
tests.py [enh] display full call chain with -c switch Sep 21, 2015

README.rst

Memspector

Inspect memory usage of python functions

Features

  • Thread handling
  • External tool, doesn't require code modification

Check memspector --help for command line options

Installation

via pip: pip install memspector

Example

example.py:

l = []


def a():
    l.extend(range(100000))


def b():
    global l
    l = []


a()
a()
b()
a()
b()
a()

Run memspector example.py to get the following output:

example.py:b()                                               thread: main_thread
total memory       diff
    2,940,336     -1,799,976
    2,040,440       -900,048

example.py:a()                                               thread: main_thread
total memory       diff
    1,139,848        900,400
    2,040,280        900,000
    1,140,408        900,048
    1,140,408        900,048

example.py                                                   thread: main_thread
total memory       diff
    1,133,832        906,232

Bugs

Bugs or suggestions? Visit the issue tracker

License

Memspector
Copyright (C) 2015 Adam Tauber <asciimoo@gmail.com>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

See <http://www.gnu.org/licenses/>.
You can’t perform that action at this time.