V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
monetto
V2EX  ›  程序员

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

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

    如题,大型项目,千行万行文件中,性能能感觉明显不如 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 真的不习惯,后来又换回去了
    coefuqin
        5
    coefuqin  
       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   ·   实用小工具   ·   4562 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 01:10 · PVG 09:10 · LAX 18:10 · JFK 21:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.