go tool pprof localhost:[port]/debug/pprof/profile #cpu性能分析 go tool pprof localhost:[port]/debug/pprof/heap #内存性能分析数据 go tool pprof localhost:[port]/debug/pprof/block #阻塞性能分析
进入命令行后 top [number] #输出对应前N位的数据信息 web #使用grapgviz生成对应svg图 web > [name].svg #生成svg图后修改名字 存放到同级目录下 list func #显示耗时几个函数 #使用go-torch进行性能分析 svg更好的表现了其中的关系但若想要直观看到所使用资源的占比 falmeGraph会更为直观 go-torch xxx.prof #生成对应火焰图 X轴显示占用资源量 Y轴显示调用栈深度
grapgviz 和 go-torch的安装
grapgviz
1 2
windows 从http://www.graphviz.org/download/ 下载对应文件 然后将其bin目录放入系统环境变量 mac brew install grapgviz
Mac go get github.com/uber/go-torch #下载go-torch cd $GOPATH/src/github.com/uber/go-torch #进入go-torch 文件夹 git clone https://github.com/brendangregg/FlameGraph.git #下载其依赖的FlameGrapg.git Win 执行与MAC相同命令后 go build #在go-torch文件下build exe文件 #将FlameGraph目录加入 系统变量 ./go-torch.exe cpu.prof Failed: could not generate flame graph: fork/exec ./FlameGraph/flamegraph.pl: %1 is not a valid Win32 application. #相关报错 尚未解决