十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Rust Glancer:内存占用低两级,Rust LSP 服务器的新选择!

Rust Glancer:内存占用低两级,Rust LSP 服务器的新选择! 【Rust Glancer 介绍】2026 年 8 月 21 日Rust Glancer 是一款功能强大的 Rust LSP 服务器其内存占用比同类工具低两个数量级。这篇文章最初是在 lobste.rs 上的评论后单独发布。【关于 rowan 和 Rust 工作区索引】rust - analyzer 使用 rowan 来表示语法树rowan 在增量解析、增量式、类似 DOM 突变风格的重构方面有一定表现但这只是 1% 的使用场景。99% 的情况是有 6666 个依赖项中的所有代码至少需要进行浅层分析主要的 AST 结构应是数组列表。Rust 工作区有大量信息需要索引Rust Glancer 处理每个函数体部分或许可实现惰性处理且开销小可结合两者优点。和 Rust Rover 比较内存使用情况会很有意思预计抛开 IDE 的 GUI 部分Rust Rover 更节省内存。【过程宏支持问题】有些功能可能不太容易支持如通过过程宏调用支持构建脚本/过程宏。添加过程宏后项目变得臃肿展开过程宏慢且会生成大量代码rust - analyzer 二进制文件大小的 30% 归因于 JSON 解析代码。可借鉴 Sorbet 的做法不运行元编程提供插件接口来“解释”原本会产生的效果。【rust - analyzer 内联提示问题】在 rust - analyzer 中编辑器修改代码时内联提示可能会出现位置错乱的情况。rust - analyzer 的核心数据模型对代码的一致快照要求严格但 LSP 无法保证这一点完全正确只能通过启发式方法来近似。文件监控实现有些粗糙有两种后端可更改选项尝试但原生监控器 API 存在竞态问题且未修复。【rust - analyzer 应有的工作方式】现在的 rust - analyzer 像只画了一半的马且只画了马头部分。IntelliJ 的 PSI API 有多个实现不同场景涉及不同后端。rust - analyzer 不应为未看过的 6666 个依赖项都使用 salsa应直接使用 rustc 的 .rmeta 文件用户操作时再切换到 salsa。实现这一点需定义用于访问 Rust 代码的抽象 API虽有计划且曾开始做但工作未完成。这样的快速分析器架构会很棒。
返回列表