为什么 vscode 对 Python 的语法解析这么慢

2024-02-21 22:25:02 +08:00
 uni

语法解析慢指的是从打开一个 python 项目到 vscode 能够识别出里面的 py 文件里的语法,然后给这个文件着色(比如类着上绿色,关键字着上粉紫色,函数着上黄色,变量着上淡蓝色)的时间很长,我打开一个大型的 py 项目,这个着色时间要花一分钟以上,换用 ruff 也没有太大改善

对比于我打开一个大型 typescript 项目,这个着色时间一般都不超过十秒,py 和 ts 差异这么大让我很费解

4780 次点击
所在节点    Visual Studio Code
31 条回复
xctcc
2024-02-22 10:06:40 +08:00
用 geek uninstaller 卸载重装一下
Jimmyisme
2024-02-22 10:10:38 +08:00
@uni #14 同样是瞬间解析,甚至是 WSL 下的
supergeek1
2024-02-22 11:07:46 +08:00
我用 vsc 同时开几个几万行的 python 项目也就是几秒加载完,倒是 pycharm 会特别慢,好几分钟那种
tedding
2024-02-22 12:12:34 +08:00
你尝试在 github 项目主页 敲一下 " . " 用在线版本的看一下。。。从 clone 开始也就 10 多秒吧
xarthur
2024-02-22 12:15:34 +08:00
如果我没记错的话 VSCode 的语法高亮的功能是由 LSP 提供的( LSP 提供哪些是类、函数、变量之类的信息),所以一旦项目文件多了,就非常受限于 LSP 的性能。
顺便这里谴责微软不开源 pylance
xarthur
2024-02-22 12:19:11 +08:00
不过我测试了一下 OP 说的项目,应该都是打开即高亮,应该出现这么慢的情况。
futuretech6
2024-02-22 12:36:53 +08:00
可以试一下 pyright ,pylance 就是基于 pyright 再包一层的
runstone
2024-02-22 15:04:35 +08:00
试验了一下,基本秒着色 web3.py 。。。
talkischeap567
2024-02-22 20:53:45 +08:00
不懂就问 vscode 写啥快?
lisongeee
2024-02-22 21:03:24 +08:00
vscode 的语法高亮基于 https://github.com/MagicStack/MagicPython

貌似是基于特定结构的正则表达式去实现的
hailaz
2024-02-23 10:22:25 +08:00
大家都好像忽略了硬件差距,应该同时观察一下启动时的 CPU 和内存和硬盘的占用情况。
例如硬盘,固态和机械在小文件读取的差距还是蛮大的,固态和固态之间的差距有时也很大。
工作空间中的文件越多,对速度的影响也会越大(我写 go 的时候就能明显感觉到)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1017367

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX