首先需要下载 对应的第三方包
gops
go get -u github.com/google/gops
运行上面命令进行 下载对应包
go install github.com/google/gops
下载完成后安装对应包 会生成 gops.exe 文件
请放到系统环境变量里面 如果运行install正常来说应该生成在%GOPATH%/bin/下面
看到官方给了一个测试例子
package main
import (
"log"
"time"
"github.com/google/gops/agent"
)
func main() {
if err := agent.Start(); err != nil {
log.Fatal(err)
}
time.Sleep(time.Hour)
}
这玩意,一开始也不知道干嘛的。后面发现如果不起这个程序的话。找不到对应的 程序日志
运行 gops 查看当前运行的所有的golang相关的程序
PID 程序运行名字 绝对路径
6488 go.exe (D:\Go\bin\go.exe)
15728* test.exe (C:\Users\root\AppData\Local\Temp\go-build178282450\command-line-arguments\_obj\exe\test.exe)
10588 gops.exe (D:\Go\bin\gops.exe)
如果有人心细的话 会发现 有个 15728* 后面带了个 *号 我也是后面才知道带 * 才可以抓取对应程序的运行数据
当然你可以指定参数执行
//跟踪堆栈 没看出来效果直接报错了。不清楚咋回事 用的最新版的包
gops stack -p=<PID>
//打印当前内存状态
gops memstats -p=<PID>