google/pprof是一个性能可视化和分析工具,由Google的工程师开发。虽然自称不是Google官方的工具,但是项目挂在google的team下,而且还在Google其它项目中得到应用,是非常好的一个性能剖析工具。
go tool pprof 复制了一份google/pprof
的代码, 封装了一个golang的工具,用来分析Go pprof包产生的剖析数据,也就是最终数据的处理和分析还是通过gogole/pprof
来实现的。
这样,你至少就用两种方式来分析Go程序的 pprof
数据:
go tool pprof
: Go封装的pprof
的工具pprof
: 原始的pprof
工具
pprof
读写一组profile.proto
格式的数据,产生可视化的数据分析报告,数据是protocol buffer格式的数据,具体格式可以参考: profile.proto。因此,它可以分析可以任意产生这种格式的程序,不管程序是什么语言开发的。
它可以读取本地的剖析数据,或者通过http访问线上的实时的剖析数据,具体使用方法可以参考官方的说明。
今天8月份的时候,pprof
发布了新的UI。 新的UI提供了顶部菜单(工具栏), 可以提供各种不同的功能的切换,非常的方便。 同时,展示也提供了新的样式,更加的好看,SVG图中的展示也更加醒目。
现在, 另一个很重要的功能火焰图也被合并到主分支,这样,我们不用再利用第三方的工具go-torch等来查看火焰图。 这也意味着, 明年二月份发布的Go 1.10中我们可以直接通过go tool pprof
查看火焰图了。
如果你不想等待到明年二月份,你可以下载最新的pprof
来查看。
go get -u github.com/google/pprof