用TCMalloc监测程序内存使用情况

TCMalloc是一个比glibc2.3的malloc更快的内存管理库,通常ptmalloc2能在300纳秒执行一个malloc/free对,而TCMalloc能在50纳秒内执行一个分配对。
TCMalloc以能减少多线程程序之间的锁争用问题,在小对象上能达到零争用。
TCMalloc为每一个线程分配一个线程本地cache,少量的地址分配就直接从cache中分配,并且定期做垃圾回收,将线程本地cache中的空闲内存,返回给全局控制堆。
TCMalloc认为 size<=32K的为小对象,大对象直接从全局控制堆中以页(4K)为单位进行分配, 以就是说大对象总是页对齐的。
一个页能存入一些相同大小的小对象,实例中,一个页中存入了32个128bytes的小对象。
小对像的分配:将0-32K之间分为170个大小类别,当要申请内存时,舍入到一个合适的大小类别中。每一个线程有一个自己的内存使用链表,当分配一个小对象时,从中心内存中分配内存并加入到线程的本地内存链表中。
大对象的分配:大对象直接从中心内存堆中分配,以4K页为单位,并以连续的内存块分配 ,称为一个spens,一个spens包括连续的多个4K页.


使用:
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值