tcmalloc介绍
来源:互联网 发布:直销公司奖金软件 编辑:程序博客网 时间:2024/04/29 06:32
http://goog-perftools.sourceforge.net/doc/tcmalloc.html
google perftools中的一员
比glic的实现ptmalloc2快6倍,ptmalloc2一次malloc和free操作约要300ns,tcmalloc只需约50ns
比ptmalloc更高的空间利用率,ptmalloc每个对象约浪费8字节,tcmalloc只额外花费1%的空间
周期性的内存回收,避免ptmalloc2中可能出现的内存爆炸式增长的问题。tcmalloc会在线程cache和中心内存堆栈之间迁移空闲对象。
尽量避免加锁(一次加锁解锁约浪费100ns),使用更高效的spinlock,采用更合理的粒度。
小块内存和打开内存分配采取不同的策略:
小于32K的被定义为小块内存
小块内存按大小被分为8Bytes,16Bytes,。。。,236Bytes进行分级。不是某个级别整数倍的大小都会被分配向上取整。如13Bytes的会按16Bytes分配
分配时,首先在本线程相应大小级别的空闲链表里面找,如果找到的话可以避免加锁操作(本线程的cache只有本线程自己使用)。如果找不到的话,则尝试从中心内存区的相应级别的空闲链表里搬一些对象到本线程的链表。如果中心内存区相应链表也为空的话,则向中心页分配器请求内存页面,然后分割成该级别的对象存储。
大块内存处理方式:
按页分配,每页大小是4K,然后内存按1页,2页,。。。,255页的大小分类,相同大小的内存块也用链表连接。
- tcmalloc介绍
- TCMalloc介绍
- TCMalloc介绍
- TCMalloc
- TCMalloc
- TCMalloc
- TCMalloc
- TCMalloc
- TCMalloc
- tcmalloc
- tcmalloc
- Tcmalloc
- GooglePerformanceTools--tcmalloc
- tcmalloc 要点
- 关于tcmalloc
- tcmalloc使用说明
- 19 tcmalloc
- 再说TCMalloc
- UBUNTU 彻底删除 MYSQL 然后重装 MYSQL
- C语言实现strlen,atoi, strcpy等函数
- VS2008 一些错误及解决方案
- 开博啦~~
- Cactus容器测试 ---浏览器方式
- tcmalloc介绍
- 完成界面的初步修改
- 大数据量表删除插入
- 如果你是项目经理, 项目团队有 12 人左右, 对此项目将来一年的发展如何规划?
- 第 18 章 TTY 驱动
- 腾讯与360之间引起的反思
- Microsoft Academic Search 微软学术搜索体验
- OpenSUSE11.3显卡驱动问题完美解决方案(Nvidia和Nouveau并存)
- 网上常用免费WebServices集合