强大的多线程内存分配器jemalloc
来源:互联网 发布:常州网络教育 编辑:程序博客网 时间:2024/06/12 01:45
目前使用的malloc() 库,调用的是 Poul-Henning Kamp 的 phkmalloc,这一实现已经有了近十年历史。这一实现设计于内存稀缺的时代,在内存分配优先级的考虑上与现在不同,而且当时多线程仍是一个学术问题。尽管如此,它仍然是相当流行的 malloc()实现,并广泛应用于所有的BSD中,甚至某些Linux发行版也使用了。
由于在多处理器系统中运行多线程应用时,它的缺乏效率,一个新的userland内存分配器被创建出来,并被它的创建者Jason Evans命名为jemalloc。它在计算机速度和内存可用性上的改进意味着,相对于phkmalloc——仅在内存使用上保守时使用,jemalloc 更适用于复杂情况,以及在底层属性上——比如CPU缓存位置和并发处理——需要记账时。 (此处似乎需要调整翻译)
这个allocator最终成为这个样子:使用多allocation arenas帮助并发性,针对多线程进行了优化。在单处理器的系统上,只有一个arena,但是在多处理器,或者则多核系统上,就分配4倍于处理器个数的arena。Allocations are divided into broad classes based on their size and those classes are further subdivided. 测试显示,jemalloc显然在多线程应用(比如MySQL)以及制造许多小allocation的应用上面有更佳表现。
下面是一片Paper
http://people.freebsd.org/~jasone/jemalloc/bsdcan2006/jemalloc.pdf
http://www.facebook.com/notes/facebook-engineering/scalable-memory-allocation-using-jemalloc/480222803919
类似的还有一个google开发的tcmalloc
http://code.google.com/p/google-perftools/
- 强大的多线程内存分配器jemalloc
- jemalloc内存分配器详解
- 对JasonEvans发表的内存分配器jemalloc论文翻译
- 多线程的内存分配器mt_alloc
- 多线程的内存分配器mt_alloc
- 支持多线程的内存分配器__gnu_cxx::__mt_alloc
- Redis采用不同内存分配器tcmalloc和jemalloc
- 更好的内存管理-jemalloc
- 更好的内存管理-jemalloc
- 更好的内存管理-jemalloc
- 更好的内存管理-jemalloc
- 更好的内存管理-jemalloc
- 更好的内存管理-jemalloc
- 更好的内存管理-jemalloc
- 更好的内存管理-jemalloc
- STL的内存分配器
- 快速的内存分配器
- STL的内存分配器
- Net 2.0 MemberShip功能应用
- Make的意义
- freecell
- webservice出現"因 URL 意外地以 结束,请求格式无法识别"的解決方法
- 金玉良言给大学生的48条忠告
- 强大的多线程内存分配器jemalloc
- Firefox下的AJAX onreadystatechange问题
- android--animationAddDel
- 马云小演讲,道破创业成功关键
- ZOJ 2016 Play on Words (HDU 1116)(欧拉回路,欧拉通路)
- 成为百万富翁的二十五种方法
- 关于用Abort()终止线程的小记
- [保护视力]电脑颜色设置
- Android常用控件-AutoCompleteTextView