ast-grep 用 Rust 重写 Tree-sitter 提速 30%
How AST-grep Rewrote Tree-sitter in Rust and Made It 30% Faster
ast-grep 团队利用 AI 协助,将 Tree-sitter 的 C 核心完全重写为 Rust 版本。这次重构不仅保留了原有语法生态的兼容性,还显著提升了性能:纯解析速度提升近 30%,端到端运行速度提升约 22%。尽管内存占用略有增加,但在处理大型 TypeScript 代码库时,内存峰值从超过 1 GiB 优化至 91.2 MiB。这次重写并非简单的语言迁移,而是针对 AI 编码代理分析完整文件快照这一特定场景进行的精简与优化,移除了编辑器特有的增量解析等机制,构建了一个更高效的运行时环境。
对于一个人来说,这绝非周末项目,而是一项披着头文件外衣的赫拉克勒斯式任务。
HN 评论区
15- trickypr
> 增量旧树复用功能已被移除
也许我漏掉了他们的本意,但 Tree-sitter 的核心不正是利用旧树来加速编辑更新吗?看起来所有的性能提升都来自于针对无错误恢复的固定文件进行优化,而这恰恰牺牲了 Tree-sitter 的实际使用场景。
- AlexeyBrin
读这篇文章就像是在攀登承重墙——借用他们文章最后一句话。
- nullbio
ast-grep 是个很棒的工具。真的对智能体工作大有帮助。我希望 LLM 能默认就学会使用它。那样会让它们变得无比强大。