Add memory usage support for Windows
[p2pool.git] / p2pool / util / memory.py
1 import os
2 import platform
3
4 _scale = {'kB': 1024, 'mB': 1024*1024,
5     'KB': 1024, 'MB': 1024*1024}
6
7 def resident():
8     if platform.system() == 'Windows':
9         from wmi import WMI
10         w = WMI('.')
11         result = w.query("SELECT WorkingSet FROM Win32_PerfRawData_PerfProc_Process WHERE IDProcess=%d" % os.getpid())
12         return int(result[0].WorkingSet)
13     else:
14         with open('/proc/%d/status' % os.getpid()) as f:
15             v = f.read()
16         i = v.index('VmRSS:')
17         v = v[i:].split(None, 3)
18         #assert len(v) == 3, v
19         return float(v[1]) * _scale[v[2]]