Lobsters | 📄 原文链接 | 2026-07-14 收录

用 Rust Arena 关闭一个三年期的 Issue

来源:giacomocavalieri.me — 2026-07-13

📋 概述

Gleam 核心团队成员 Giacomo Cavalieri 分享了一个用 Rust Arena 终结三年悬案的精彩案例。Gleam 的代码格式化器基于递归数据结构 Document,大量 Box::new 堆分配成为性能瓶颈。作者引入 typed_arena 批量管理内存,将文档节点存储在 Arena 上并通过引用共享,一次分配即可反复复用。经过数天细心的 Find-and-Replace 工程,一个 +2963/-1032 行的 PR 让格式化器提速 24%(13ms → 9.8ms),gleam format 整体提速 13%,峰值内存降低 10%。Arena 还带来了额外红利:数百个重复的小文档(关键字、逗号分隔符等)只需分配一次即可处处引用。

🔑 核心要点

💡 金句

少在堆上分配东西,代码自然更快更省内存——Arena 是 Rust 里做到这一点最优雅的方式。
← 返回 Lobsters 首页