Source code for weblib.debug

import os

from weblib.py3k_support import *

SCALE = {'kB': 1024.0, 'mB': 1024.0 * 1024.0,
         'KB': 1024.0, 'MB': 1024.0 * 1024.0}


[docs]def memory_usage(since=0, render=True, pid=None): """ Return resident memory usage in bytes. """ if pid is None: pid = os.getpid() proc_status = '/proc/%d/status' % pid try: status = open(proc_status).read() except: return 0 else: line = [x for x in status.splitlines() if 'VmRSS:' in x][0] items = line.split('VmRSS:')[1].strip().split(' ') mem = float(items[0]) * SCALE[items[1]] - since if render: metrics = ['b', 'Kb', 'Mb', 'Gb'] metric = metrics.pop(0) for x in xrange(3): if mem > 1024: mem /= 1024.0 metric = metrics.pop(0) return '%s %s' % (str(round(mem, 2)), metric) else: return mem