VSCode 在写 Golang 时,应该如何提高性能

2023-05-04 16:28:19 +08:00
 monetto

如题,大型项目,千行万行文件中,性能能感觉明显不如 GoLand 。

具体表现为,查找一个 Struct 定义,好几秒才能跳转。

包名+方法名,Alt+Enter 自动导包,也要好久才能提示导入。

加载就加载好久 ....

有什么提高性能的方法吗 ...

Mac i7 6 核 + 32G 内存。最新版本 VSCode + Go 插件

3063 次点击
所在节点    程序员
16 条回复
standchan
2023-05-04 16:30:50 +08:00
换 goland
Goat121
2023-05-04 17:11:48 +08:00
VScode 就是正常的文件查找速度,你用其他方法也一样
JB 系列是启动时把文件读入内存构建了查找树才显得快,这也是 JB 吃内存的主要原因之一
别折腾了直接换吧
yianing
2023-05-04 17:44:06 +08:00
我用的 m1 pro ,nvim + gopls 感觉速度还行啊,vscode 应该也是 gopls 吧
Norths
2023-05-04 17:51:02 +08:00
大概没办法,i9 64G ,各种工具和配置都试过了,自动提示还是会卡卡的 ,用惯了 Goland 的丝滑换到的 VSCode 真的不习惯,后来又换回去了
coefuqin
2023-05-04 17:58:40 +08:00
换 goland +1
ysicing
2023-05-04 18:14:52 +08:00
深有感触😂,拥有 m1 和英特尔的机子,m1 体验要好 100%不止,所以 m1 架构就用 vscode ,英特尔就用 goland 。

搞不了,除非英特尔你不用 gopls😂
qiaobeier
2023-05-04 18:16:32 +08:00
m2 max 你值得拥有
monetto
2023-05-04 18:28:03 +08:00
@standchan
@Norths
@coefuqin
@ysicing

真的 ... 能看出来的,都是 GoLand 用习惯了 ... 这俩对比,GoLand 大部分的功能都能暴打 VSCode 了 ...,属于是拿吃饭的东西跟社区用爱发电的比了...
ysicing
2023-05-04 20:55:58 +08:00
@monetto 不是啊,m1 上我基本用 Visual Studio Code 或者 VSCodium, 真的很流畅。但是英特尔上是真的不行,我的是 18 款顶配扛不住,只要一打开大项目就特别卡,cpu 满负荷,只能手动 kill gopls 进程了。有机会你可以对比👀就知道了
loveumozart
2023-05-04 23:03:36 +08:00
我早找了好多帖子,确实没法提高,goland 其实够可以了,如果是 intel cpu ,goland 卡可能是 cpu 不行
hzzhzzdogee
2023-05-05 03:16:03 +08:00
我也很支持 vscode, 可是真的还有一大段路需要追赶

感觉目前除了 js 栈能打平, 其他都不如 jetbrains 系
yzbythesea
2023-05-05 05:48:50 +08:00
没办法 应该是 gopls 本身太垃圾。

我的是 M1 ,但是一样大项目 gopls 就拉胯,vscode/vim 一样不行。goland 没有问题。大的云计算 go sdk ,直接补全关键词都刷不出来。

我觉得 goland 可能用了类似 ctags 那种高性能解析。
monetto
2023-05-05 11:35:22 +08:00
@ysicing 你这个很流畅是吃了大量的 CPU 代价呀,我们 Intel 的没这么多资源 ... 但是现在问题是,同等资源的情况下,GoLand 明显表现要比 VSCode 好很多... 比较内存比 CPU 便宜呀
monetto
2023-05-05 11:36:52 +08:00
@yzbythesea 原先我写过一些 IDEA 插件,感觉 JetBrains 这方面做的比较成熟了,各种 PSMClass ,解析树什么的,大量缓存了全局的 Class ,有啥需要直接去 Map 里面查 ...,解析能力确实很强。而且 Original Class Life Cycle 管理的也很棒 ...
monetto
2023-05-05 11:39:12 +08:00
@hzzhzzdogee +1 ,最近我在尝试写 Go 切换 VSCode ,然后,我近期准备将 Python 也迁移过去,但是发现 VSCode 的 Python 插件早就已经不支持 Py2.7 了,这点确实不如 IDEA ,然后,项目名字,和包名字,一样了(其实不太规范),但是 IDEA 就能很好的识别出来什么是 项目名,什么是包名,但是 VSCode 就无脑从项目目录导入 .... 搞的我把最外层的目录重新改成 XXX_Source 了...
tsutomu
2023-05-05 19:15:37 +08:00
gopls 还有内存泄露的毛病,真没法解决

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

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

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

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

© 2021 V2EX