小编Joh*_*h16的帖子

Linux getrusage() maxrss 最大驻留集大小不随分配增加(C++)

我正在尝试使用getrusage(.)和最大驻留集大小 (maxrss) 来检查内存泄漏。但是,当我故意尝试造成泄漏时,maxrss 不会改变。也许我对 maxrss 的理解不够深入。这是代码:

#include <iostream>
#include <sys/time.h>
#include <sys/resource.h>
using namespace std;
int main() {
  struct rusage r_usage;
  getrusage(RUSAGE_SELF, &r_usage);
  cout << r_usage.ru_maxrss << "kb\n";
  cout << "Allocating...\n";
  int a = 100000; // have tried range of numbers
  int* memleaktest = new int[a]; // class member
  if(!memleaktest)
    cout << "Allocation failed";
  getrusage(RUSAGE_SELF, &r_usage);
  cout << "after allocation " << r_usage.ru_maxrss << "kb\n";
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

allocatoin (~15000kb) 后我得到完全相同的值。在 Ubuntu x86 上。

c++ linux memory getrusage

3
推荐指数
1
解决办法
752
查看次数

标签 统计

c++ ×1

getrusage ×1

linux ×1

memory ×1