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

TCMalloc是一个高效的内存管理库,特别适合多线程环境,它通过线程本地缓存减少锁竞争。小对象分配在50纳秒内完成,大对象以4K页对齐。TCMalloc还支持内存泄漏检测,可以通过环境变量或源代码插入检查点进行控制。通过pprof工具分析内存泄漏,提供详细的泄漏信息。
摘要由CSDN通过智能技术生成
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页.


使用:
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值