google heap profiler内存管理工具小试

heap profiler为google出品的用来监测内存的工具,可以用来进行内存泄漏的监测
使用方法:
(1)在makefile中链接libprofiler.a与libtcmalloc.a
(2)在程序代码中,希望开始监测的地方使用HeapProfilerStart(char *path),参数为要输出的文件的名称前缀;在停止监测的地方使用HeapProfilerStop(),测试代码如下:

#include <iostream>
#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文件状态,其中包括每个函数的内存使用情况
例如:
在这里插入图片描述
(5)分析结果:
第一列为以MB为单位的内存分配情况
第二列和第五列是第一列和第四列的百分比表示
第三列是第二列累加之和,如:第二行的第三列就是第一行的第二列+第二行的第二列
第四列代表所有的进程和它调用函数的内存之和

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值