我目前正在学习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的内容:
我做错了什么?我也希望看到标准库和运行时调用。
编辑:我使用的是Ubuntu 14.04和Go 1.4.1