分析Go代码时如何在结果中获得更多粒度?

时间:2015-01-16 16:45:04

标签: go profiling

我目前正在学习Go并且我已经编写了一个brainfuck解析器作为学习练习。运行时有点慢,我猜测它的标准库打印功能很慢。当我来描述该程序时,我从pprof工具获得了一个非常小的报告。

我基本上使用了此处描述的所有技术来创建cpu.profile: http://saml.rilspace.org/profiling-and-creating-call-graphs-for-go-programs-with-go-tool-pprof

我构建项目并运行它:

$ go build bfg
$ ./bfg mandelbrot.bf

这会输出cpu.profile。然后,我针对该个人资料运行pprof

$ go tool pprof --text bfg cpu.profile > report.txt

以下是report.txt的内容:

42.56s of 42.56s total (  100%)
  flat  flat%   sum%        cum   cum%
42.56s   100%   100%     42.56s   100%  main.main
     0     0%   100%     42.56s   100%  runtime.goexit

小不是吗?这非常令人失望,因为我期待看到标准的库和运行时调用,并且还有更深入的内容。

我还尝试生成一个调用图:

$ go tool pprof --pdf bfg cpu.profile > callgraph.pdf

callgraph.pdf的内容:

enter image description here

我做错了什么?我也希望看到标准库和运行时调用。

编辑:我使用的是Ubuntu 14.04和Go 1.4.1

0 个答案:

没有答案