频道栏目
首页 > 资讯 > 其他综合 > 正文

google heap profiler内存管理工具小试

17-08-09        来源:[db:作者]  
收藏   我要投稿

heap profiler为google出品的用来监测内存的工具,可以用来进行内存泄漏的监测

使用方法:

(1)在makefile中链接libprofiler.a与libtcmalloc.a

(2)在程序代码中,希望开始监测的地方使用HeapProfilerStart(char *path),参数为要输出的文件的名称前缀;在停止监测的地方使用HeapProfilerStop(),测试代码如下:

#include 
#include "google/heap-profiler.h"

void test1()
{
    int i = 100;
    while(i--) {
        char *buf = new char[1024*1024];
    }   
}

void test2()
{
    int i = 100;
    while(i--) {
        char *buf = new char[1024*1024];
    }   
}

int main()
{
    HeapProfilerStart("./test.log");
    int i = 100;
    while(i--) {
        char *buf = new char[1024*1024];                                                                                                                                    
    }   
    test1();
    test2();
    HeapProfilerStop();
    return 0;
}

测试用例中生成的heap文件名为test.log.0001.heap、test.log.0002.heap以此类推

(3)宏HEAP_PROFILE_ALLOCATION_INTERVAL指当一块大小为HEAP_PROFILE_ALLOCATION_INTERVAL的内存被申请出来,生成一个新的heap文件

(4)使用命令(pprof –text 可执行文件名 heap文件名)查看heap文件状态,其中包括每个函数的内存使用情况

例如:
查看heap文件

(5)分析结果:

第一列为以MB为单位的内存分配情况

第二列和第五列是第一列和第四列的百分比表示

第三列是第二列累加之和,如:第二行的第三列就是第一行的第二列+第二行的第二列

第四列代表所有的进程和它调用函数的内存之和

相关TAG标签
上一篇:MyEclipse中常用查找快捷键
下一篇:HBO遭遇第二波泄密,黑客勒索价值600万美元比特币
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站