malloc 够用吗?Arena 分配器给出的另一个答案

原创
alex 1小时前 阅读数 3 #头条
每次 malloc 都要跟操作系统打交道,释放时还要逐个回收——这套机制在多对象生命周期一致的 C 项目里其实很浪费。Arena allocator 的思路很简单:一次性申请一大块内存,之后所有对象从这块区域切分,生命周期结束时整体释放。代价是颗粒度粗、尾部可能浪费空间,但换来的是分配速度的量级提升和极低的碎片率。我读完这篇文章最大的感受是,它把很多 C 程序员默认接受的"malloc 就够用"摊开来讲,用实际代码展示了 arena 如何把游戏引擎、解析器、编译器这类场景里的内存管理复杂度砍掉一大半。如果你写 C 且对分配延迟敏感,这篇值得一读。

原文:Arena Allocators in C · 来源:Hacker News

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除