1782个文件1.2秒全量索引:tokensave性能基准测试与26倍加速秘密

发布时间:2026/11/4 2:06:58
1782个文件1.2秒全量索引:tokensave性能基准测试与26倍加速秘密
  • 开发工具
  • MCP 服务
  • 知识图谱
  • AI 应用

【免费下载链接】tokensave

The most comprehensive code intelligence MCP server for AI coding agents. 40+ tools, 30+ languages, 9 agent integrations. Pre-indexed semantic knowledge graphs for instant code understanding — fewer tokens, fewer tool calls, 100% local.

项目地址:https://gitcode.com/gh_mirrors/to/tokensave
点击查看免费下载

如果你在用 AI 编程助手(Claude Code、Cursor、Codex 等)开发项目,一定体会过"Agent 花大量时间扫描文件"的煎熬。开源项目tokensave是一个专为 AI 编程 Agent 打造的代码智能 MCP 服务器:它通过本地预索引的语义知识图谱,让 Agent 直接查询代码结构,实现1782 个文件 1.2 秒全量索引,相比同类工具最高快26 倍,并节省大量 token 与工具调用,且 100% 本地运行。

本文带你读完它的性能基准测试数据,拆解 26 倍加速背后的 4 个核心优化,并教你用一条命令亲自复现这些数字。


一、什么是 tokensave?为什么索引速度很重要

🧠 一句话理解:AI Agent 回答"这个函数被谁调用?"以前需要 grep + 读几十个文件;tokensave 把这些关系提前算好,存进本地 libSQL 图数据库,Agent 一次工具调用就能拿到答案。

索引是这一切的"地基"。全量索引越快:

  • 新项目首次tokensave init等待越短
  • 28K 文件级 monorepo 的切换成本越低
  • Agent 会话中按需补同步(catch-up sync)越不打断工作流

tokensave 用 Rust 编写、单二进制分发(约 25 MB,内置 50+ 语言的 tree-sitter 语法),无需 Node.js/Python 运行时,这是它性能故事的起点。


二、核心基准数据:1.2s vs 31.2s,26x 加速是怎么测出来的

官方在同一个1,782 文件的混合 Rust/Java/Scala 代码库(57K 节点、103K 边)上做了全量索引横评,结果记录在 README.md:

工具全量索引耗时相对加速
CodeGraph(TypeScript/Node.js)31.2s1x
tokensave(Rust)1.2s26x

再看版本演进:v3.2 之前,同一个 1,782 文件代码库要14.8 秒;优化后降至 1.2 秒。而一个28K 文件的 monorepo 从 565 秒(近 9 分钟)降到 22 秒——不同代码库上综合提速 13~26 倍。这段历史写在 docs/TOKEN-SAVE-WHATSNEW.md 中。

下图是tokensave status的实际输出,索引完成后你可以直接看到文件数、节点数、边数和最后一次全量同步耗时:


三、26 倍加速的 4 个秘密:一次看懂 Rust 性能优化

v3.2 的性能改造是"组合拳",四个手段分别砍掉了不同阶段的瓶颈:

1️⃣ rayon 并行抽取(Parallel Extraction)

语法解析是最耗时的 CPU 密集环节。tokensave 用 rayon 把文件抽取拆成多线程任务池并行执行,多核机器近乎线性加速。

2️⃣ 预编译语句写库(Prepared-Statement Writes)

逐条INSERT是数据库写入的经典陷阱。改用 libSQL 预编译语句批量绑定,消除了每条记录的解析与编译开销。

3️⃣ 后缀索引的引用解析(Suffix-Indexed Resolution)

"谁调用了谁"的边解析需要跨文件匹配符号名。引入后缀索引后,引用解析从"全表扫描式"变成索引命中,28K 文件场景下收益最明显。

4️⃣ 批量加载模式 + 延迟建索引(Bulk Load + Deferred Indexing)

初始建库时先不创建二级索引,把所有节点灌进去之后再一次性建索引——避免每插一行都维护索引树。

💡 细节可参考:机器感知并发由 src/hardware.rs 探测 CPU/内存后自动选择low / balanced / performance三档资源画像,tokensave init会自动在你的机器上跑一次并行加速测试并写入配置。


四、真实仓库对比:FastAPI 冷索引 6.2s → 2.1s

除了自建基准,仓库里还有一份对真实项目的对照测试(脚本见 benchmarks/run_benchmarks.py)。以FastAPI为例,两个工具索引同一份 clone,数据来自 benchmarks/comparison-report.md:

指标token-savior(Python)tokensave(Rust)
冷索引时间6.212s2.147s
热重索引1.575s1.363s
符号/节点数2,74029,019(含字段、边等更细粒度)
get_change_impact 平均耗时24.37ms0.57ms

注意最后两项:tokensave 不仅建得更快,查询也更快,且节点数量多出 10 倍——省 token 的前提是信息密度更高。

在 Agent 端效果上,第三方基准 benchmarks/tsbench/SUMMARY.md 记录了 96 个合成任务的成绩:tokensave 首跑即得 95.8% 分数,单任务活跃 token 仅695,约为对照工具(3,395)的1/5。下图是tokensave gain命令输出的按天节省明细:


五、自己动手:用 tokensave bench 复现基准测试

所有数字都可以自己验证。三步走:

① 安装(任选其一):brew install tokensave/cargo install tokensave,或克隆源码编译:

git clone https://gitcode.com/gh_mirrors/to/tokensave cd tokensave && cargo build --release --locked

② 在任意项目里初始化索引:

tokensave init # 全量索引(本项目 1782 文件约 1.2s 量级)

③ 跑内置基准:tokensave bench使用随附的 10 个默认查询,对比"读整个文件"的 baseline 与"图谱检索"的实际上下文消耗:

官方实测汇总:平均 88% 检索节省,10 个查询从 142.8k token 降到 5.5k。你也可以用--queries my-queries.toml换成自己的查询集。

更重量级的端到端基准在 benches/large_repos.rs,它把 MCP 工具打向 polkadot-sdk、emacs、scipy、node 四个固定版本的大仓库(仓库定义见 benches/repos.rs),每个工具至少 5 次带真实参数的查询,保证跨运行可复现。


六、快之外:内存与启动开销同样可控

性能不只是速度。benchmarks/memory-profiles.md 记录了一组资源画像对比:在 96 文件的混合负载全量索引中,low画像下进程峰值 RSS 只有80.9 MiB,而performance画像为 320 MiB——低配机器可以按需降档而不牺牲正确性。

启动侧,benchmarks/startup-report.md 显示无索引场景 MCP 握手启动约 83~89ms、首次请求 1.5ms 以内;一次 v3.5 的注册表重构还把无项目握手路径的内存分配调用减少了 58.5%、累计分配字节减少 42.9%。

所有项目的工具调用还能通过tokensave monitor的实时 TUI 汇总查看,如下方截图所示(底部可见 36M token 累计节省与 93% 效率):


七、参考资料与延伸阅读

资料路径
26x 加速版本演进说明docs/TOKEN-SAVE-WHATSNEW.md
FastAPI 对照基准原始数据benchmarks/comparison-results.json
tsbench Agent 评测总结benchmarks/tsbench/SUMMARY.md
CPU/内存画像测量方法benchmarks/cpu_profiles.py
MCP 启动耗时报告benchmarks/startup-report.md
大仓库端到端微基准benches/large_repos.rs
机器探测与并行加速src/hardware.rs

项目 Star 增长曲线也印证了它的社区热度:


结语

26 倍加速并不是单点技巧的功劳,而是并行解析 + 批量写库 + 索引延迟 + 索引化解析四个优化在 Rust + 本地 libSQL 架构上的合力结果。对使用者而言,这意味着:初始化几乎无感、补同步不卡顿、Agent 每次查询都在为钱包省钱。不妨今天就git clone下来,跑一次tokensave bench,看看你的项目能省多少。🚀

  • 开发工具
  • MCP 服务
  • 知识图谱
  • AI 应用

【免费下载链接】tokensave

The most comprehensive code intelligence MCP server for AI coding agents. 40+ tools, 30+ languages, 9 agent integrations. Pre-indexed semantic knowledge graphs for instant code understanding — fewer tokens, fewer tool calls, 100% local.

项目地址:https://gitcode.com/gh_mirrors/to/tokensave
点击查看免费下载

相关推荐

上一篇:使用 wagmi Tempo AMM Hook 实现 Rebalance Swap:useRebalanceSwap 与 useRebalanceSwapSync 实战指南
下一篇:GPT 数据加载器实战:用 PyTorch 从 token 序列构建 Next-Token 预测批次

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考