为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用C ++在运行时获取内存?

如何使用C ++在运行时获取内存?

largeQ 2019-08-09 17:36:09
如何使用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” 编译


查看完整回答
反对 回复 2019-08-09
  • 3 回答
  • 0 关注
  • 744 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信