![](/img/trans.png)
[英]How to get Jupyter working after Python change 32bit -> 64bit
[英]How to get the memory working set of a 64bit process in python 2.7 32bit?
对于自动化测试框架,我需要监视我开始的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
还有另一种获取真实数据的方法吗?
谢谢!
好的,在发生一些WMI工具/谷歌事故后,我发现了另一种用词组表达正确数字的查询的方法。 这是新代码:
def measure_memory( process ):
w = wmi.WMI('.')
result = w.query("SELECT WorkingSetSize FROM Win32_Process WHERE ProcessID="+str(process.pid))
print result
subset = result[0]
return "%.2f" % (float(subset.WorkingSetSize)/1024./1024.)
现在看来这可行。 任何人都可以确认这应该比我现在的情况更有效吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.