Measure the amount of memory used?

Dan Stromberg drsalists at
Thu Aug 18 19:48:36 CEST 2011

"A person with one watch knows what time it is.  A person with two is never

You're probably best off just picking one or more measures that work for
your purposes, and going with them.  Don't concern yourself overmuch with
finding "the" amount.

Memory can actually contract on some modern systems, due to garbage
collection and the relatively new ability of some malloc's to mmap away
no-longer-needed pages.

Going directly to /proc is fine, though it might be a little more common
(and portable) to run ps and let it sift through /proc.  But of course,
running ps over and over is less efficient.

On Thu, Aug 18, 2011 at 8:08 AM, Jack Bates <ms419 at> wrote:

> I wrote a content filter for Postfix with Python,
> It should get started once, and hopefully run for a long time - so I'm
> interested in how it uses memory:
>  1) How does the amount of memory used change as it runs?
>  2) How does the amount of memory used change as I continue to hack on
> it, and change the code?
> My naive thought was that I'd periodically append to a file, the virtual
> memory size from /proc/[pid]/stat and a timestamp. From this a could
> make a graph of the amount of memory used as my content filter runs, and
> I could compare two graphs to get a clue whether this amount changed as
> I continue to hack
>  - but some Googling quickly revealed that measuring memory is actually
> quite complicated? Neither the virtual memory size nor the "resident set
> size" accurately measure the amount of memory used by a process
> Has anyone else measured the memory used by a Python program? How did
> you do it?
> --
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Python-list mailing list