更好的内存管理-jemalloc

更好的内存管理-jemalloc

 
   


今年年初由于facebook而火起来的jemalloc广为人之,但殊不知,它在malloc界里面很早就出名了。Jemalloc的创始人Jason Evans也是在FreeBSD很有名的开发人员。此人就在2006年为提高低性能的malloc而写的jemalloc。Jemalloc是从2007年开始以FreeBSD标准引进来的。软件技术革新很多是FreeBSD发起的。在FreeBSD应用广泛的技术会慢慢导入到linux。

目前jemallocfirefox中也在使用。在firefox2中出存碎片问题之后,便在firefox3中使用了jemalloc。在safarichrome中使用的是googletcmalloc

Jemalloc的技特性

Jemalloc聚集了malloc的使用程中所验证的很多技。忽略细节着眼,最出色的部分仍是arenathread cache。(事上,这两个与tcmalloc的架几乎相同。Jemalloc only的部分将会在另一次posting继续

Arena

其像malloc集中管理一整块内存,不如其分成块来分而治之。此小便称为arena想象一下,小朋友一图纸们随意地点。果可想而知,他肯定相互方而不敢肆意地synchronization),而影响画图效率。但是如果老事先在大图纸分好每人的域,小朋友就可以又快又准地在各自地域上画图这样念就是arena

Thread cache

如果是辟小块内存,使不arena而直接malloc各自的线thread cache域。此ideagoogletcmalloc的核心部分,亦在jemalloc中体

再拿上面的例子,小朋友除了一图纸外,再各自A4这样,小朋友在不大面的点,只在自己的A4上心情地即可(no arena seeking)。可以在自己手上的或涂(using thread cache),完全不用人(no synchronization, no locking),迅速有效地

下图是jemalloc的核心layout。看着复杂,其实都是上面说明的部分。

更好的内存管理-jemalloc

实际jemalloc的性能呢?


更好的内存管理-jemalloc

最左边的就是glibc的malloc,最右边的就是jemalloc。从图表上可以看出,jemalloc的性能有glibc的两倍以上。非常压倒性的性能差异。因此,使用了jemalloc的应用程序自然会快很多。Jemalloc旁边的就是tcmalloc。Tcmalloc的性能与其相差甚微,低jemalloc2.1.0慢4.5%。图上和tcmalloc的1.4版本,而如今它已经到了1.6版本,因此实际上这两者应该是不相仲伯的。Jemalloc的创始人jason evans也意识到这一点,说在cpu core 8以上的计算机上jemalloc效率更高。

程序的最后的免午餐  kth分布式技lab      

2005表了一篇文章午餐的束了在之前,程序就算不用费脑子,cpu时钟速度增加,程序性能自己就上去。但在不同,cpu时钟趋定,而核地增加。程序需要适应这样的多线程多程的境,开发出适合的程序。文章的大这样容。

6年之后的如今,篇文章完全现实了。事cpu时钟停留在3GHz,而核不上升。在程序要适线程多程的分布式算,速度才能上升。但是这样的程序很

在在多线程的境下,程序员们的最后一道午餐便是tcmallocjemalloc这样malloc library于使用多线程的程序而言,性能提高%

共享一下我本人的经验。我本人在kth术研究所分布式技lab中承担iLock(分布式同步工具,请参googlechubby)。在iLock中用了googletcmalloc果,性能提升了18~22%

最大的点就是不需要做任何复杂的工作便可得到这样的效果。不需要代编译。只需在行二制之前,在cmd窗口中

$ LD_PRELOAD=tcmalloc所设置的文件夹/libtcmalloc.so

这样在之后行的用程序使用tcmallocjemalloc而代替glibcmallocptmalloc)。置此,我便可得到性能20%的提升,这真是送的最后的免午餐。

如今,在分布式技lab中使用googletcmalloc。原因在于性能上者差不多,但googletcmalloc所提供的程序分析工具非常(heap profiler, cpu profiler)丰富。所以tcmalloc可能更方便一些。

一定要使用最新的malloc?一定要的!


  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值