我试图描述我的go库,但我坚持以下输出:
(pprof) top10
Total: 884 samples
884 100.0% 100.0% 884 100.0% runtime.mach_semaphore_wait
0 0.0% 100.0% 884 100.0% System
Run Code Online (Sandbox Code Playgroud)
哪个不是很有帮助.我的库读取一个zip文件并解析附带的XML文件(xlsx).当我在我的库的最低部分(实际的xml解码发生)中移动分析函数时,输出并不是"更好":
(pprof) top10
Total: 884 samples
884 100.0% 100.0% 884 100.0% fmt.(*fmt).formatFloat
0 0.0% 100.0% 884 100.0% runtime.schedtrace
Run Code Online (Sandbox Code Playgroud)
我知道这是一个非常模糊的问题,但也许有一些有用的提示,而无需提供完整的源代码?
我从golang博客条目中获取了探查器调用,并go tool pprof main profile在构建之后调用了探查器main.go.
f, err := os.Create("profile")
if err != nil {
log.Fatal(err)
}
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
... my source code here
Run Code Online (Sandbox Code Playgroud)
这是一个已知的错误,分析在Mac OS X上不起作用.https://code.google.com/p/go/issues/detail? id = 6047
该错误发生在Mac OS X内核中,而Russ Cox有一个补丁,如下所述:http://godoc.org/code.google.com/p/rsc/cmd/pprof_mac_fix,但附带关于拧紧的可怕警告你的机器.特别是,Mavericks下的补丁存在已知问题.