Lobsters | 原文链接 | 2026-08-24 收录

把 Markdown 解析器的内存砍到约 1/5:一节 C++ 内存优化实战课

来源: blog.kowalczyk.info — 2026-08-24

概述

作者在把 Rust 的 gpui-component 移植成 C++ 时顺手优化了其中的 markdown 解析器,目标是压缩 AST 节点大小。通过指针压缩(8 字节指针变 4 字节偏移)、在 arena 内原地增长字符串、重排字段消除填充、varint 编码字符串长度、融合互斥字段、用环形链表替代子节点 vector 等一系列手段,把 232 字节的单一 Node 结构压到 16 字节,同一份 64KB 输入的解析内存消耗整体下降约七到八成。

核心要点

金句

我们终于赢过了 Rust 原版。
返回 Lobsters 首页