#工程经验分享# 内存泄露排查

Posted J-A

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#工程经验分享# 内存泄露排查相关的知识,希望对你有一定的参考价值。

这里简单记录下ubuntu下进行程序内存消耗的检测,以及对于内存泄露的排查方法。
//获取系统当前可用内存

int GetSysMemInfo()

   int mem_free = -1; //空闲的内存 = 总内存 - 使用了的内存
   int mem_total = -1; //当前系统可用总内存
   int mem_buffers = -1; //缓存区的内存大小
   int mem_cached = -1; //缓存区的内存大小
   char name[20];
   FILE *fp;
   char buf1[128], buf2[128], buf3[128], buf4[128], buf5[128];
   int buff_len = 128;
   fp = fopen("/proc/meminfo", "r");
   if(fp == NULL)
   
       printf("GetSysMemInfo() error! file not exist\\n");
       return -1;
   
   if(NULL == fgets(buf1, buff_len, fp) ||
      NULL == fgets(buf2, buff_len, fp) ||
      NULL == fgets(buf3, buff_len, fp) ||
      NULL == fgets(buf4, buff_len, fp) ||
      NULL == fgets(buf5, buff_len, fp))
   
       printf("GetSysMemInfo() error! fail to read!\\n");
       fclose(fp);
       return -1;
   
   fclose(fp);
   sscanf(buf1, "%s%d", name, &

以上是关于#工程经验分享# 内存泄露排查的主要内容,如果未能解决你的问题,请参考以下文章

如何排查Java内存泄露

如何排查Java内存泄露

cgroup 内存泄露问题排查记录

ASP.NET程序如何测试内存泄露

一次 RocketMQ 进程自动退出排查经验分享(实战篇)

一次 RocketMQ 进程自动退出排查经验分享(实战篇)