(C)Python中是否有任何方法可以检查进程的当前内存使用情况?特别是,我想在测试脚本中确定内存使用的高水位标记,但如果有必要,我不介意定期检查内存使用情况并为自己计算高水位线。
编辑:我正在寻找一个纯Python解决方案,或者适用于OS X的东西。
答案 0 :(得分:4)
查看我对this question的回答。它使用标准库的getrusage()
模块中的resource
函数,适用于Mac OS X.
答案 1 :(得分:2)
在Linux上,您可以检查/proc/self/status
文件:
VmPeak: 6784 kB
VmSize: 6784 kB
VmLck: 0 kB
VmHWM: 572 kB
VmRSS: 572 kB
VmData: 180 kB
VmStk: 136 kB
VmExe: 44 kB
VmLib: 1640 kB
VmPTE: 36 kB
VmSwap: 0 kB
可能VmPeak
是您最感兴趣的行,但如果您mmap(2)
一个千兆字节大小的文件,即使您只使用三个或者文件中有四页。
如果您了解通过top(1)
或ps(1)
检查内存的限制,那么您可能会很高兴。如果您不了解检查内存使用的限制,请务必查看Virt
输出中Res
,Shr
和top(1)
列的含义。 :)
答案 2 :(得分:1)
您可以使用os.getpid()
获取当前的PID,然后使用该PID在调用top
/ free
/ ps
等子进程的输出中查找进程
我不是OSX / BSD专家,因此我不确定哪个命令将通过进程为您提供内存使用的标志
答案 3 :(得分:0)
MacosX可以使用vmmap
和vmmap64
来访问信息。我不是识字python,但我想你应该能够打开一个管道到子进程以某种方式读取输出。
编辑:可以找到一些额外的非python信息here。