Add memory usage support for Windows
[p2pool.git] / p2pool / util / memory.py
index 9b50ad1..ef2ce8c 100644 (file)
@@ -1,13 +1,19 @@
-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]]