cireu
1
yyoncho想搞大新闻。众所周知lsp-mode慢的死穴在于json解析部分。在Emacs 27以前,Emacs没有原生的JSON解析工具,lsp-mode只能用Elisp的JSON解析工具,这样和lsp服务器交互会花费大量时间在数据编码解码上,导致用户体验不好。
yyoncho计划通过使用25引入的dynamic module。用C这类语言为Emacs提供一个更快的json解析工具,提升lsp-mode的速度。
另外还有人提出可以通过第三方工具吧json转换为sexp,然后让Emacs用read
读入达到加速的效果。
各位有什么高见呢?
27有原生的 JSON解析,但似乎 lsp 没有快多少。也许用第三方的也能解决,一个命令行工具就行。
弱弱的问一句,vim 的 lsp 客户端用起来挺快,vscode 就不用说了,他们的 JSON 处理能否借鉴呢?
既然parse json 是 bottleneck,没人提最新的simdjson么?
cireu
9
vim的json解析是什么做的?是C吗?还是Python?
dynamic module 默认不开启是非常错误的策略,以至于这项功能形同虚设好多年。
cireu
13
不是很懂,能否具体解释一下?你是指configure的编译选项么
我觉得另外一个dynamic module不讨喜的原因是跨平台能力不好。
这应该是后话了。
我觉得默认不开启首先要负相当一部分责任。不是有个段子么,谷歌第二页是最佳藏尸地点,所以我认为不可小觑默认关闭带来的消极作用。
1 个赞
确实,很强大的功能,文档也很详细,但是用的人不多。不过可能也是大部分elisp包对性能要求不高的原因