直接修改goland.vmoptions文件:调高-xms2048m/-xmx9216m、启用-xx:reservedcodecachesize=2048m、禁用g1gc;同时配置goproxy=https://goproxy.cn,direct并确保go111module=on。

GoLand 启动就卡顿或编译慢怎么办
直接改 goland.vmoptions 文件,不调参基本没法用中大型 Go 项目。GoLand 底层是 JVM,Go 项目又常带大量依赖和类型推导(尤其用 gopls),默认堆内存(512M)根本撑不住。
-
-Xms2048m和-Xmx9216m必须设——物理内存 16G 的机器,-Xmx设到 6~8G 比较稳;低于 16G 就别硬上 9G,容易触发系统 OOM -
-XX:ReservedCodeCacheSize=2048m要开,否则频繁重编译时gopls会反复 dump JIT cache,表现为“正在加载”卡住十几秒 - 改完必须重启 GoLand,且首次启动会重建索引,耐心等完再测;改错导致无法启动?立刻用备份的原
goland.vmoptions替换回来
代理和模块初始化总失败
国内环境不配代理,go get 基本等于摆烂。GoLand 终端里执行命令前,先确认 GOPROXY 已生效,而不是靠 IDE 自动猜。
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
- 终端里运行
go env -w GOPROXY=https://goproxy.cn,direct,不是goenv(那是旧版 alias) - 如果还报
module github.com/gin-gonic/gin: Get "https://proxy.golang.org/...": dial tcp: lookup proxy.golang.org: no such host,说明代理没生效,检查是否漏了directfallback - 新建项目后第一件事不是写代码,而是终端里跑
go mod init myproject,再go mod tidy;别点右键“Add Framework Support”,那玩意儿经常漏加replace或搞错 module path
调试 Web 服务时断点不命中
GoLand 默认用 dlv 调试,但 HTTP 服务常因监听地址、进程模型或构建参数导致断点失效。
- 确保已安装
dlv:终端执行go install github.com/go-delve/delve/cmd/dlv@latest,装完检查$GOPATH/bin/dlv是否存在 - Run Configuration 里,“Run kind”选
Package,不是File;Working directory 设为项目根目录(含go.mod的那一层) - 如果用
gin.Default()启动,断点打在 handler 函数里却跳过,大概率是开了GIN_MODE=release——在 Run Config 的 Environment variables 里删掉它,或显式设GIN_MODE=debug - HTTP 服务监听
:8080时,别在浏览器里狂刷 F5,dlv单步时并发请求会干扰调试状态,建议用curl或 Apifox 发单次请求
路由和模板文件找不到
GoLand 对 html/template 和 Gin 的 LoadHTMLGlob 路径解析很敏感,路径错一丁点就报 template: ...: nil pointer 或静默失败。
- Gin 加载模板时,
LoadHTMLGlob("templates/*")的路径是相对于 当前工作目录,不是项目根目录,也不是main.go所在目录——Run Config 的 Working directory 必须和模板所在目录对齐 - 用
http.ServeFile或router.Static提供静态资源时,路径参数是 URL prefix + 文件系统路径,比如router.Static("/static", "./public"),其中./public是相对 Working directory 的路径 - GoLand 默认不监控
templates/这类非 Go 文件夹的变更,改完 HTML 后得手动Ctrl+Shift+O(Reload project)或点右上角 “Refresh” 图标,不然热加载不触发










