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

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 支持

……

文章转载自 开源中国社区[https://www.oschina.net]

时间: 2025-01-01 19:49:11

jemalloc 5.0.0 全新版本发布,内存分配管理的相关文章

C语言内存分配管理常见bug

标准C库提供了4个内存管理函数:malloc.calloc.realloc和free. bug1 调用free释放p指向的内存块之后,p就是一个悬挂指针--指向逻辑上不存在的内存的指针.如果引用这个悬挂指针,会导致不可预见的错误. ElemType* p = (ElemType*)malloc(sizeof(ElemType) * NUM); ... free(p);// p = NULL; ... *p = "..."; bug2 释放空闲内存,破坏内存管理函数所用的数据结构. El

log-malloc2 0.2.3发布 内存分配跟踪库

log-malloc2 是一个malloc内存分配跟踪库,用于帮助发现内存泄漏.它具有回溯和确切字节的内存跟踪功能. log-malloc2 0.2.3该版本改善了与其他库的兼容性,增加了实际分配的内存大小跟踪,更好的平台可移植性,和文档改进. 软件信息:http://devel.dob.sk/log-malloc2/ 下载地址:http://devel.dob.sk/log-malloc2/log-malloc2-0.2.3.tar.gz

WebMagic 0.7.1 版本发布,Java 爬虫框架

此次更新包含几个比较大的Bugfix,以及一些遗留问题的改进. 修复0.7.0引入的RedisScheduler无法使用的bug.#583 注解模式的JsonPath默认会指定source为RawText,不再会出现自动为头尾加了标签导致无法解析的情况.#589 RegexSelector之前版本默认匹配group1,并通过对无捕获组的正则头尾加括号的形式来统一抽取内容.在0.7.1版本改为不再改变正则,而是通过匹配group0还是group1来实现匹配,见#559.新做法可以减少一些特殊用法的

Yarn 内存分配管理机制及相关参数配置

理解Yarn的内存管理与分配机制,对于我们搭建.部署集群,开发维护应用都是尤为重要的,对于这方面我做了一些调研供大家参考. 关于Yarn的详细介绍请参考[Hadoop Yarn详解] 一.相关配置情况 关于Yarn内存分配与管理,主要涉及到了ResourceManage.ApplicationMatser.NodeManager这几个概念,相关的优化也要紧紧围绕着这几方面来开展.这里还有一个Container的概念,现在可以先把它理解为运行map/reduce task的容器,后面有详细介绍.

开源社群系统 ThinkSNS+ 0.7.4 版本发布

社交系统"ThinkSNS+"对比ThinkSNS V4系列,ThinkSNS V4系列的产品规划主要偏重于企业服务应用,注重功能的覆盖面和用户关系的逻辑处理.社群系统ThinkSNS+加入商城.会员系统.付费问答.付费查看.多种认证机制.打赏机制.视频.广告联盟.直播.虚拟金币等多种模块,更加侧重针对创业者的产品运营使用,更具灵活性. 在这里你将看到TSer们本周研发.优化.设计的动态即时播报,可评论留言提出您的问题及建议与我们互动. 同时,研发已经进入了新的一个阶段,开始研发新的功

StdJS 0.2.1 版本发布,通用 JavaScript 库

StdJS 0.2.1 对0.2版本中存在的一些已知bug进行了修复,同时增加了几个新的方法,以及对部分功能的进行了更新. 功能增加: Std.css模块增加了静态方法 support , 用于测试浏览器对指定css名称的支持情况,如果浏览器支持指定名称的css属性,将会返回true,否则返回false //true Std.css.support("fontSize"); Std.css.support("font-size"); //false Std.css.

ToughRadius发布正式版本 V1.0.0

问题描述 http://toughradius.readthedocs.org/是一个开源的Radius服务软件,基于BSD许可协议发布,自0.9.0beta版本发布以来,ToughRADIUS经过几轮迭代,各方面逐渐稳定,现已发布V1.0.0正式版本.V1.0.0相对V0.9.9的一些更新如下:资费单位支持小数点.修复销户退费BUG.在线查询ui bug修复.新增系统日志查看方便提供故障信息.修复了充值缴费bug.修复爱快未下发nas地址造成的问题.

android bitmap的内存分配和优化

首先Bitmap在Android虚拟机中的内存分配,在Google的网站上给出了下面的一段话  大致的意思也就是说,在Android3.0之前,Bitmap的内存分配分为两部分,一部分是分配在Dalvik的VM堆中,而像素数据的内存是分配在Native堆中,而到了Android3.0之后,Bitmap的内存则已经全部分配在VM堆上,这两种分配方式的区别在于,Native堆的内存不受Dalvik虚拟机的管理,我们想要释放Bitmap的内存,必须手动调用Recycle方法,而到了Android 3.

RAMCloud:内存云存储的内存分配机制

现在全闪存阵列已经见怪不怪了,EMC的XtremIO,还有VNX- F(Rockies),IBM FlashSystem.全闪存真正为效率而生,重新定义存储速度.凭借极致性能,高可用性,为您极大提高企业级应用效率.提到闪存的优势,那么毋庸置疑的就是速度!而在速度优势背后,SSD则面临着价格.容量以及寿命等方面的限制. 当然随着技术的发展,成本的下降,SSD有可能会取代机械硬盘,成为下一代企业存储的主要介质.机械硬盘可能转变为磁带的角色. 但是,闪存速度的确就是现在存储系统的极限吗?现在有需要基于