Lobsters | 📄 原文链接 | 2026-08-06 收录

别提前停下来:在内存速度下对源码做大小写折叠

来源:github.blog — 2026-07-31

📋 概述

GitHub 工程师分享如何让 Blackbird 代码搜索引擎里的大写折叠(case folding)快到内存带宽级。Blackbird 索引超过 1.8 亿个仓库、480TB 源码,每个字节在抽取 ngram 前都要折叠,规模上连基础操作的速度都开始重要。最反直觉的结论是:ASCII 快路径里最大的提速来自「删掉一个优化」——与其遇到首个非 ASCII 字节就提前 break 交给 Unicode 路径,不如整块无分支地扫过缓冲区,因为分支本身就是开销;即便叠上分支预测失效,整扫也比提前停更快。作者把结果开源成 Rust crate casefold,并特别强调折叠不是小写化:折叠是刻意与地区无关、对称稳定的比较关系,且只实现简单的一对一折叠(状态 C/S),与 ripgrep 等工具保持一致。

🔑 核心要点

💡 金句

最大的一次提速并非来自添加优化,而是删除一个优化。
← 返回 Lobsters 首页