mrgloom
mrgloom

Reputation: 21632

How to get peak memory usage of python script?

I'm doing some extensive scientific python calculations and whant to know execution time and memory footprint of python script.

So how to get peak memory usage of python script?

If it matters I'm on Windows and use python 2.7.

Upvotes: 16

Views: 12344

Answers (3)

Paul Harrison
Paul Harrison

Reputation: 545

The resource module can give you this. Works in both Python 2 and Python 3.

import resource
resource.getrusage(resource.RUSAGE_SELF).ru_maxrss

This is peak memory in kilobytes. The user and system time is also included in the value from getrusage.

Upvotes: 7

BlueTrin
BlueTrin

Reputation: 10073

For the peak memory, as you are on Windows, you can use psutil and psutil.Process.memory_info, for example to get the peak working set size, in bytes:

>>> import psutil
>>> p = psutil.Process()
>>> p.memory_info().peak_wset
238530560L

As per the link above, you can get more details about some Windows specific fields on this page.

Upvotes: 4

Back2Basics
Back2Basics

Reputation: 7806

Sounds like you are looking for a memory profiler. Memory_profiler is one that you can dive into which line is giving you the problems and with some querying you can figure out which area is the biggest in memory consumption.

https://pypi.python.org/pypi/memory_profiler and since you are using windows it will also need this https://pypi.python.org/pypi/psutil

Good Luck!

Upvotes: 2

Related Questions