golang开发常用命令
文章目录
golang开发常用命令
本文介绍golang开发过程中的常用命令。
包管理
go mod init # 初始化包管理配置,这一步会在module根目录下生成go.mod文件
go mod tidy # 更新包管理配置go.mod(去掉无用module, 新增必要module)
go get -u github.com/hashicorp/memberlist # 添加包依赖
go mod edit -replace github.com/hashicorp/memberlist => github.com/pilosa/memberlist@v0.1.4-0.20190415211605-f6512523c021 # 替换依赖库。但是module中的代码扔可以原依赖库的方式使用新依赖库。
编译
go build # 编译当前目录所在package
go build -o <bin> main.go # 编译代码并指定输出二进制文件
go build -gcflags "-N -l" main.go # 编译时关闭内联优化
测试
go test ./... # 运行module下所有单测。一个module对应一个go.mod文件
go test . # 运行package下所有单测。一个package对应一个目录
go test -v . # 添加verbose信息,会输出日志等信息
go test -run=`<regexp> `. # 运行符合正则表达式的的单测
go test -bench -run=None # 运行基准测试
调试
dlv exec <bin> -- arg1 arg2 ... # 调试运行binary文件
dlv test . # 调试当前module的测试代码
dlv attach <pid> # 调试正在运行的进程
dlv core `<bin>` `<core>` # 调试core文件
# 远程调试
dlv attach <pid> --headless --api-version=2 --log --listen=:8181 ## server端
dlv connect <server_host>:8181 ## client端
调优
go tool pprof http://host:port/debug/pprof/profile # 通过net/http/pprof采集profile并下载到本地
go tool pprof -<host>:<port> <profile_file> # 通过浏览器查看profile.
总结
本文我们分别从golang工程的包管理 -> 编译 -> 测试 -> 调试 -> 调优几个阶段总结了一些常用命令。
文章作者 后端侠
上次更新 2022-09-12