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 阅读(3258) 评论(0) 推荐(1) 编辑