在Windows上,您可以使用WMI(主页, 芝士店):def memory():
import os from wmi import WMI
w = WMI('.')
result = w.query("SELECT WorkingSet FROM Win32_PerfRawData_PerfProc_Process WHERE IDProcess=%d" % os.getpid())
return int(result[0].WorkingSet)import os
_proc_status = '/proc/%d/status' % os.getpid()_scale = {'kB': 1024.0, 'mB': 1024.0*1024.0,
'KB': 1024.0, 'MB': 1024.0*1024.0}def _VmB(VmKey):
'''Private.
'''
global _proc_status, _scale # get pseudo file /proc//status
try:
t = open(_proc_status)
v = t.read()
t.close()
except:
return 0.0 # non-Linux?
# get VmKey line e.g. 'VmRSS: 9999 kB\n ...'
i = v.index(VmKey)
v = v[i:].split(None, 3) # whitespace
if len(v)
return 0.0 # invalid format?
# convert Vm value to bytes
return float(v[1]) * _scale[v[2]]def memory(since=0.0):
'''Return memory usage in bytes.
'''
return _VmB('VmSize:') - sincedef resident(since=0.0):
'''Return resident memory usage in bytes.
'''
return _VmB('VmRSS:') - sincedef stacksize(since=0.0):
'''Return stack size in bytes.
'''
return _VmB('VmStk:') - since