VSCode 在写 Golang 时,应该如何提高性能 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
monetto
V2EX    程序员

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

  •  
  •   monetto 2023-05-04 16:28:19 +08:00 4028 次点击
    这是一个创建于 969 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    加载就加载好久 ....

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

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

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

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

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

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

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

    我觉得 goland 可能用了类似 ctags 那种高性能解析。
    monetto
        13
    monetto  
    OP
       2023-05-05 11:35:22 +08:00
    @ysicing 你这个很流畅是吃了大量的 CPU 代价呀,我们 Intel 的没这么多资源 ... 但是现在问题是,同等资源的情况下,GoLand 明显表现要比 VSCode 好很多... 比较内存比 CPU 便宜呀
    monetto
        14
    monetto  
    OP
       2023-05-05 11:36:52 +08:00   1
    @yzbythesea 原先我写过一些 IDEA 插件,感觉 JetBrains 这方面做的比较成熟了,各种 PSMClass ,解析树什么的,大量缓存了全局的 Class ,有啥需要直接去 Map 里面查 ...,解析能力确实很强。而且 Original Class Life Cycle 管理的也很棒 ...
    monetto
        15
    monetto  
    OP
       2023-05-05 11:39:12 +08:00
    @hzzhzzdogee +1 ,最近我在尝试写 Go 切换 VSCode ,然后,我近期准备将 Python 也迁移过去,但是发现 VSCode 的 Python 插件早就已经不支持 Py2.7 了,这点确实不如 IDEA ,然后,项目名字,和包名字,一样了(其实不太规范),但是 IDEA 就能很好的识别出来什么是 项目名,什么是包名,但是 VSCode 就无脑从项目目录导入 .... 搞的我把最外层的目录重新改成 XXX_Source 了...
    tsutomu
        16
    tsutomu  
       2023-05-05 19:15:37 +08:00   1
    gopls 还有内存泄露的毛病,真没法解决
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5800 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 02:11 PVG 10:11 LAX 18:11 JFK 21:11
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86