如何使用C ++在运行时获取内存?我需要在我的程序运行时获取mem使用VIRT和RES并显示它们。到目前为止我尝试了什么:getrusage(http://linux.die.net/man/2/getrusage)int who = RUSAGE_SELF; struct rusage usage; int ret; ret=getrusage(who,&usage);cout<<usage.ru_maxrss;但我总是0。
3 回答
莫回无
TA贡献1865条经验 获得超7个赞
旧:
maxrss说明进程的最大可用内存。0表示对该过程没有限制。您可能想要的是非共享数据使用情况
ru_idrss
。
新:看起来上面实际上并不起作用,因为内核没有填充大部分值。什么工作是从proc获取信息。而不是自己解析它,使用libproc(procps的一部分)更容易,如下所示:
// getrusage.c#include <stdio.h>#include <proc/readproc.h>int main() { struct proc_t usage; look_up_our_self(&usage); printf("usage: %lu\n", usage.vsize);}
用“ gcc -o getrusage getrusage.c -lproc
” 编译
- 3 回答
- 0 关注
- 744 浏览
添加回答
举报
0/150
提交
取消