c 程序计算系统内存使用量?

标签 c linux memory

我如何知道已使用的内存量。即 RAM 使用情况?

int main()
{
  int i=0;
  for(i=0;i<100;i++)
     {
        printf("%d\n",i);
     }
return 0;
}

我想编写一段代码来计算该程序使用的内存量。可能就像-

int main()
{
  int i=0;
  for(i=0;i<100;i++)
     {
        printf("%d\n",i);
     }
  printf("Amount of memory consumed=%f",SOME_FUNCTION());
return 0;
}

最佳答案

getrusage 系统调用将返回当前进程的一些信息,其中包括“驻留集大小”:

struct rusage usage;

if (!getrusage(RUSAGE_SELF, &usage)) {
    printf("Maximum resident set size (KB): %ld\n", usage.ru_maxrss);
} else {
    perror("getrusage");
}

此大小等于物理连接到进程的内存量,而不是虚拟地址空间的整个大小,其中部分空间可能被调出或从未加载。

关于c 程序计算系统内存使用量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31448566/

相关文章:

c++ - 手动调用析构函数后如何删除内存?

c++ - 为什么这段 C++ 代码有效?栈内存和指针

c++ - C中的内存访问优化

编译器 gcc :error; no such file or directory

c - fprintf 正在打印两个值而不是一个

c - 类型转换 2 个具有不同数量变量的结构

linux - 如何在 Ubuntu 12.04 上的端口 443 上运行 SSH

linux - ffmpeg 不接受脚本中的输入

linux - 查找linux中2个目录之间的差异

c - 如果我可以通过 C 中的指针修改 const 限定符,那么它的用途是什么?