在unix下运行的程序的内存使用情况

时间:2015-01-21 13:04:41

标签: unix memory-management

我只是想知道我是否已经有时间-v给出的最大RSS值,有没有办法从这个命令行中获取正确的RSS值,或者它是错误的,没有办法找到正确的值以KB或其他单位?任何其他unix命令可以确定从进程开始到结束的进程(程序)的内存使用情况为平均值还是最大值?

期待您的回复,

卡罗尔

1 个答案:

答案 0 :(得分:0)

在Linux上,您可以考虑使用proc(5)。因此,对于pid 1234的process,请在终端中尝试cat /proc/1234/maps(对于当前shell,请尝试cat /proc/$$/maps等等)。它显示address space中的当前virtual memory

从流程内部依次读取/proc/self/maps伪文件。

另请参阅/proc/self/stat/proc/self/statm/proc/self/status(您可以解析并获取VmRSS:行。)

你也可以使用time(1)& top(1):可以使用/配置这两个命令来显示RSS。还有watch(1) ps(1)(例如watch ps -l 1234

另请阅读流程会计,例如acct(5)等......

您可以使用time -v yourprogram its arguments ....

运行您的程序

另见getrusage(2)& wait4(2)

另请阅读linuxatemyram