TCMalloc : Thread-Caching Malloc

TCMalloc相较于glibc2.3malloc(ptmalloc)在性能上有显著提升,尤其在多线程环境下减少了锁竞争,提高了小对象的空间效率。本文详细分析了TCMalloc的核心优势,包括减少多线程程序中的锁竞争、优化小对象空间利用等方面,以及其与ptmalloc在内存管理上的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


TCMalloc比glibc 2.3 malloc即ptmalloc快,一个malloc/free操作对使用ptmalloc要300ns,而使用tcmalloc只要50ns


这样看来ptmalloc很慢,所以很多应用都倾向于自己管理由自己定制的空闲链表,这通常会消耗更多的内存。


除了速度快之外,TCmalloc还有很多优点


1. tcmalloc减少了多线程程序的锁竞争,对于小对象几乎没有竞争,对于大对象采用精化的高效旋转锁。ptmalloc2减少竞争是通过使用 【每线程-内存区】,但是由于这个实现的限制,内存不能跨内存区移动,这样会浪费空间, 例如在Google的一个应用由几个初始化阶段组成,第一阶段要分配300M的内存存储应用所需数据结构,到了第二阶段,如果为第二阶段分配到了另一个内存区,那么就无法重用第一阶段没用完剩下的内存。

2.tcmalloc另外一个好处是表示小对象的空间效率高,只会增加1%的内存开销,而ptmalloc2为每一个小对象增加一个4字节头部。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值