有可能从Python获得内存使用的“高水位线”吗?

2024-04-26 06:32:45 发布

您现在位置:Python中文网/ 问答频道 /正文

(C)Python中是否有任何方法来检查进程的当前内存使用情况?特别是,我想在测试脚本中确定内存使用的高水位线,但如果有必要,我不介意定期检查内存使用情况并为自己计算高水位线。

编辑:我正在寻找纯python解决方案,或者是在OS X上工作的解决方案


Tags: 方法内存脚本编辑进程os情况解决方案
3条回答

看看我对this question的回答。它使用标准库的resource模块中的getrusage()函数,并在Mac OS X上工作

可以使用os.getpid()获取当前的PID,然后使用该PID在调用top/free/ps等的子进程的输出中查找进程

我不是OSX/BSD专家,所以我不确定哪个命令将按进程为您提供内存使用

在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)检查内存的局限性,那么你可能很适合去。如果您不知道检查内存使用的限制,那么一定要检查VirtResShr列在top(1)输出中的含义。:)

相关问题 更多 >

    热门问题