标签
一篇技术博客探讨 Zig 中 ArenaAllocator 与 ArrayList 增长机制的不兼容问题:ArrayList 的「分配-复制-释放」模式使旧内存几乎永远无法归还给 Arena,最坏情况下可能导致约 3 倍内存占用。作者建议通过预分配容量(initCapacity/ensureTotalCapacityPrecise)和避免交错分配来缓解该问题。
这篇博客文章详细介绍了优化C++ Markdown解析器内存使用的技术,通过arena分配和指针压缩,将AST节点大小从232字节显著减少到16字节,同时保持解析速度。
作者构建了一种名为bet的玩笑编程语言,通过LLVM编译,采用基于区域的内存管理,并且成功运行了完整的DOOM游戏(56,000行代码),无需代码审查,仅依赖测试。