也挺好:Emacs LSP performance booster

Improve the performance of lsp-mode or eglot using a wrapper executable.

11 个赞

感觉有点意思,Windows上自己编译,配合大佬给的 eglot-booster.el 可以使用。效果上,感觉是快了,但怀疑有点心理作用的因素,再用一段时间试试。

1 个赞

这个项目的优点:

  1. 通过Rust外部进程解析LSP JSON, 避免Elisp直接解析LSP JSON, 会提高一部分性能

待考查的缺点:

  1. 把大量 LSP JSON 变成 Elisp Byte Code, 数据量太大还是会导致 Elisp 解析 Byte Code 对象也会性能遇到瓶颈和GC阻塞
  2. 不在外部进程缓存诊断对象, 实时把上千个诊断对象返回Elisp创建Overlay也会遇到性能瓶颈

彻底解决性能瓶颈不仅仅是要减少解析对象的过程, 本质是要引入多线程机制, 并且减少对Emacs端发送不必要的对象(比如上千的诊断和上万的API文档等等), 最大程度减少Elisp计算的对象并且在前端要减少上千个候选词过滤,才能彻底解决性能问题。

3 个赞

也不奢求能彻底解决了,个人而言,性能有提升,对现有配置侵入少,能很方便的整合进现有的配置就值得 star 了。

7 个赞