Lobsters | 📄 原文链接 | 2026-11-10 收录

Git 删除引用为什么慢:一次 LLM 写 Rust 顺带发现的优化

来源:nayak.im — 2026-11-07

📋 概述

引用是 Git 存储的骨架,files 后端为每个引用建一个文件(loose ref),量大时完全撑不住——GitLab 主仓有超过 1500 万个引用。2006 年加入的 packed-refs 把引用收进单个文件解决了大部分问题,但留下一个洞:新建总是 loose ref,删除却必须重写 packed-refs。作者造了一个 700 MB 的 packed-refs,删除一个引用耗时 2.14 秒,而文件大小一点没变。修复方向本是迁移到 reftable 后端,但为了熟悉 Rust,他用 LLM 生成了一个 Rust 版 files 后端来做 C/Rust ABI 成本基准,结果发现 Rust 版反而快了 17.7%。

🔑 核心要点

💡 金句

等等,Rust 版本居然更快?怎么会?
← 返回 Lobsters 首页