我们要做什么
整体来说分为三步
- 准备gops代理
- 准备工具
- 启动工具
https://github.com/google/gops
ref http://www.coder55.com/article/86759
我们需要在go代码中添加代理,使得程序可以被gops收集信息。
package main
import (
"log"
"time"
"github.com/google/gops/agent"
)
func main() {
if err := agent.Listen(agent.Options{}); err != nil {
log.Fatal(err)
}
time.Sleep(time.Hour)
}
有关更多命令,您可以参考项目文档。如果缺少该代理,则在与该代理进行交互时会收到错误消息:
Couldn’t resolve addr or pid 168 to TCPAddress: couldn’t get port for PID 168
https://github.com/google/pprof
我们用这个来生成火图,比如:
这里我只用到了生成火图的功能:
./pprof -http=:8080 $