jemalloc 5.0.0 全新版本发布,内存分配管理

王练
 王练
发布于 2017年06月15日
收藏 11

jemalloc 发布了全新的 5.0.0 版本。与以前所有的版本不同,新版本不使用自然对齐的“chunks”进行虚拟内存管理,而是使用页面对齐的“extents”。

jemalloc 是一个通用的 malloc(3)实现,它强调了分段回避和可伸缩并发支持。jemalloc 在 2005 年首次作为 FreeBSD libc 分配器使用,2010年,jemalloc 的功能延伸到如堆分析和监控/调优等。现代的 jemalloc 版本依然集成在 FreeBSD 中。

开发团队表示,持续集成现在是开发的重点,后续倾向于保持在各个平台(Linux、FreeBSD、macOS 和 Windows)上的稳定性。因此,后续发版频率可能会逐渐降低。

部分更新内容:

  • 新增 C ++ 新建/删除 operator bindings。

  • 将衰减时间分辨率从秒增加到毫秒。

  • 将 MALLCTL_ARENAS_ALL 添加为固定索引,用于通过 mallctl 访问合并/销毁的 arena 统计信息。

  • 新增互斥量分析,用于收集各种有助于诊断开销/争用问题的统计信息。

  • 在初始化期间检测到无效的配置选项时,可以选择中止 opt.abort_conf。

  • 新增 --with-version = VERSION,以将 jemalloc 嵌入到另一个项目的 git 仓库中使用。

  • 新增 --disable-thp 来支持交叉编译。

  • 新增 --with-lg-hugepage 以支持交叉编译。

  • 新增 mallctl 接口:

    • background_thread

    • opt.abort_conf

    • opt.retain

    • opt.percpu_arena

    • opt.background_thread

    • opt.{dirty,muzzy}_decay_ms

    • opt.stats_print_opts

    • arena.<i>.initialized

    • arena.<i>.destroy

    • arena.<i>.{dirty,muzzy}_decay_ms

    • arena.<i>.extent_hooks

    • arenas.{dirty,muzzy}_decay_ms

    • arenas.bin.<i>.slab_size

    • arenas.nlextents

    • arenas.lextent.<i>.size

    • arenas.create

    • stats.background_thread.{num_threads,num_runs,run_interval}

    • stats.mutexes.{ctl,background_thread,prof,reset}.{num_ops,num_spin_acq,num_wait,max_wait_time,total_wait_time,max_num_thds,num_owner_switch}

    • stats.arenas.<i>.{dirty,muzzy}_decay_ms

    • stats.arenas.<i>.uptime

    • stats.arenas.<i>.{pmuzzy,base,internal,resident}

    • stats.arenas.<i>.{dirty,muzzy}_{npurge,nmadvise,purged}

    • stats.arenas.<i>.bins.<j>.{nslabs,reslabs,curslabs}

    • stats.arenas.<i>.bins.<j>.mutex.{num_ops,num_spin_acq,num_wait,max_wait_time,total_wait_time,max_num_thds,num_owner_switch}

    • stats.arenas.<i>.lextents.<j>.{nmalloc,ndalloc,nrequests,curlextents}

    • stats.arenas.i.mutexes.{large,extent_avail,extents_dirty,extents_muzzy,extents_retained,decay_dirty,decay_muzzy,base,tcache_list}.{num_ops,num_spin_acq,num_wait,max_wait_time,total_wait_time,max_num_thds,num_owner_switch}

  • 移除--disable-tcache

  • 移除--disable-tls

  • 移除--enable-ivsalloc

  • 移除--with-lg-size-class-group

  • 移除--with-lg-tiny-min

  • 移除--disable-munmap

  • 移除 redzone 支持

  • ……

该版本有大量更新内容,请查阅发行主页了解详情

下载地址:

>>>【评论有礼】6月6日-30日评论每日更新的“新闻资讯和软件更新资讯”,评论点赞数超过 20 的可登上每周更新的“源资讯”和“软件周刊”两大栏目,点赞数超过 50 的还将获得 5 活跃积分奖励和开源中国定制好礼。详情

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:jemalloc 5.0.0 全新版本发布,内存分配管理
加载中

精彩评论

冰力
冰力

引用来自“mojie126”的评论

和tcmalloc哪个比较好啊...?
相信 FreeBSD 的技术选型,不只是性能好,而且更容易维护和使用,就像 clang 一样替代 gcc。
mojie126
mojie126
和tcmalloc哪个比较好啊...?

最新评论(5

egmkang
egmkang
更新的这么快......
冰力
冰力

引用来自“mojie126”的评论

和tcmalloc哪个比较好啊...?
相信 FreeBSD 的技术选型,不只是性能好,而且更容易维护和使用,就像 clang 一样替代 gcc。
k
ktprime

引用来自“mojie126”的评论

和tcmalloc哪个比较好啊...?
各有所长,单线程这个性能更好
mojie126
mojie126
和tcmalloc哪个比较好啊...?
clouddyy
clouddyy
消灭沙发
返回顶部
顶部