go语言性能分析工具pprof

pprof支持两种方式记录性能 1、runtime/pprof   2、net/http/pprof   ,两种方式均可分析,哪种方便用哪种。

一般使用第二种比较方便,只要在代码里加上一个函数, 就可以在运行的时候通过访问http://127.0.0.1:1233/debug/pprof/ 获取运行信息

go func() {

        http.ListenAndServe(":1233", nil)

}()

运行信息

此时可以使用  go tool pprof http://127.0.0.1:1233/debug/pprof/profile 命令行分析CPU运行信息(最后的profile可换成其他需要的信息),命令行出现如下信息,类似gdb调试

pprof调试

使用top命令排序所有耗CPU的信息

top

这里只有一个耗时的函数 main函数里的testgo。  使用list命令查看testgo函数里的耗时语句

list

可以看到所有时间基本都消耗在 14行。 很明显14行是一个死循环。好了,pprof的基本使用方式就介绍到这里,另一种是通过runtime包,在代码里输入以下代码,可以将cpu信息输出到指定文件,然后使用go tool pprof cpu.pro 命令来查看信息方法与上面一样。

代码

你可能感兴趣的:(go语言性能分析工具pprof)