-import gc
import os
+import platform
_scale = {'kB': 1024, 'mB': 1024*1024,
'KB': 1024, 'MB': 1024*1024}
def resident():
- with open('/proc/%d/status' % os.getpid()) as f:
- v = f.read()
- i = v.index('VmRSS:')
- v = v[i:].split(None, 3)
- #assert len(v) == 3, v
- return float(v[1]) * _scale[v[2]]
+ if platform.system() == 'Windows':
+ 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)
+ else:
+ with open('/proc/%d/status' % os.getpid()) as f:
+ v = f.read()
+ i = v.index('VmRSS:')
+ v = v[i:].split(None, 3)
+ #assert len(v) == 3, v
+ return float(v[1]) * _scale[v[2]]