
-
生物通官微
陪你抓住生命科技
跳动的脉搏
老树发新枝:利用 ExGen-Malloc 优化单线程应用程序
《IEEE Computer Architecture Letters》:Old is Gold: Optimizing Single-Threaded Applications With ExGen-Malloc
【字体: 大 中 小 】 时间:2025年11月13日 来源:IEEE Computer Architecture Letters 1.4
编辑推荐:
内存分配器对应用性能有显著影响,尤其在多线程环境下需优化分配速度和内存碎片。本文提出ExGen-Malloc专为单线程设计,在SPEC CPU2017基准测试中较dlmalloc提升1.19倍,较mimalloc提升1.03倍,通过简化复杂元数据管理降低开销。
随着利用并行性来提升性能的多线程应用程序的日益普及,现代内存分配器通常被设计为支持多个线程之间的并发分配和释放请求,以最小化竞争并最大化可扩展性。为了满足多线程应用程序的需求,内存分配器本身也从单线程库设计演变为多线程库设计。图1展示了内存分配器的发展历程。在20世纪90年代中期,像Win32分配器和dlmalloc [1]、[2]、[3](也称为Windows XP内存分配器和Lea分配器)这样的单线程内存分配器占主导地位,这反映了当时单核处理器的广泛使用。到了20世纪90年代末和21世纪初,随着多核处理器的兴起,LKMalloc [4]成为第一个多线程内存分配器。后续的发展引入了分层元数据等技术以及更好的元数据管理机制和控制流程优化,最终催生了Google的Hoard [5]、Meta的tcalloc [6]和微软的mimalloc [8]等分配器的诞生。
生物通微信公众号
知名企业招聘