一种用于自动测试框架我需要监视一个64位的处理,我开始的工作集。 不知怎的,我无法找到一个解决方案,允许监视超过4GB的数据更多。 我试图WMI和psutil,但两者都停留在32位的边界。 我做这样的事情:
import wmi
import psutil
import subprocess
def measure_memory( process ):
mem = psutil.Process( process.pid ).get_memory_info().rss
return "%.2f M" % (float(mem)/1024./1024.)
def measure_memory_wmi( process ):
w = wmi.WMI('.')
result = w.query("SELECT WorkingSet FROM Win32_PerfRawData_PerfProc_Process WHERE IDProcess="+str(process.pid))
subset = result[0]
return "%.2f M" % (float(subset.WorkingSet)/1024./1024.)
process = subprocess.Popen( [path_to_program, '-option'] )
print measure_memory( process )
print measure_memory_wmi( process )
这提供了:
-0.00 M
4096.00 M
而进程资源管理器提供
6.806.976 K
有另一种方式来获得真实的数据?
谢谢!