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.
如果你在用 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.2s | 1x |
| tokensave(Rust) | 1.2s | 26x |
再看版本演进: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.212s | 2.147s |
| 热重索引 | 1.575s | 1.363s |
| 符号/节点数 | 2,740 | 29,019(含字段、边等更细粒度) |
| get_change_impact 平均耗时 | 24.37ms | 0.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.
相关推荐
LatticeDB性能基准测试全公开:0.13μs节点查找与HNSW优化26倍提速的秘密
LatticeDB性能基准测试全公开:0.13μs节点查找与HNSW优化26倍提速的秘密 LatticeDB 是一款嵌入式单文件知识图谱数据库,内置向量搜索(H
10倍速搜索引擎:Typesense性能基准测试全解析
10倍速搜索引擎:Typesense性能基准测试全解析 Typesense是一款开源的高性能搜索引擎,作为Algolia和Pinecone的替代品,同时也是El
搜索引擎后端全文检索UV性能基准测试:10-100倍速度提升的秘密
UV性能基准测试:10 100倍速度提升的秘密 本文深入分析了新一代Python包管理工具UV的性能优势,揭示了其相比传统工具实现10 100倍速度提升的技术秘
开发工具CLI包管理器
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考