vector03

导航

2016年2月5日 #

Inside of Jemalloc

摘要: Jemalloc最初是Jason Evans为FreeBSD开发的新一代内存分配器, 用来替代原来的 phkmalloc, 最早投入使用是在2005年. 到目前为止, 除了原版Je, 还有很多变种 被用在各种项目里. Google在android5.0里将bionic中的默认分配器从Dl替换为Je, 也是看中了其强大的多核多线程分配能力. 同经典分配器, 如Dlmalloc相比, Je在基本思路和实现上存在明显的差别. 比如, Dl在分配策略上倾向于先dss后mmap的方式, 为的是快速向前分配, 但Je则完全相反. 而实现上也放弃了经典的boundary tag. 这些设计牺牲了局部分配速度和回收效率, 但在更大的空间和时间范围内却获得更好的分配效果. 更重要的是, 相对经典分配器, Je最大的优势还是其强大的多核/多线程分配能力. 以现代计算机硬件架构来说, 最大的瓶颈已经不再是内存容量或cpu速度, 而是 多核/多线程下的lock contention. 因为无论核心数量如何多, 通常情况下内存 只有一份. 可以说, 如果内存足够大, CPU的核心数 阅读全文

posted @ 2016-02-05 09:56 vector03 阅读(3207) 评论(0) 推荐(1) 编辑