[Tutor] Any way of monitoring a python program's memory utilization?

Terry Carroll carroll at tjc.com
Thu Jul 17 03:08:04 CEST 2008


On Thu, 17 Jul 2008, John Fouhy wrote:

> tasklist is the Windows version of ps.  You could try something like
> 'tasklist /FI "IMAGENAME eq python.exe"', though you'd then have to
> parse the output.

Thanks!  I just found that too!  (Alan's suggestiom made me thing of 
googling for "ps equivalent memory", and I found a reference to tasklist.

It's kludgy, but I have a proof-of-concept that only works if there's only 
one instance of Python running:

def memusage():
    import os
    cmd = 'tasklist /fi "IMAGENAME eq python.exe" /FO table /nh'
    output = os.popen(cmd).read()
    processdata = output.split()
    assert len(processdata) ==  6
    memsizeK_str = processdata[4]
    memsizeK_str = memsizeK_str.replace(',','') # get rid of commas
    return int(memsizeK_str)*1024

The obvious thing to do is to also filter by PID, which is the second 
element; Of course that opens a new question: how to find one's own PID 
from within Python.  More googling awaits.....




More information about the Tutor mailing list