我尝试描述我的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
哪个不是很有帮助。我的库读取一个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
我知道这是一个非常模糊的问题,但也许有一些有用的提示,而无需提供完整的源代码?
我已经从golang blog entry接听了探查者电话,并在构建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
答案 0 :(得分:6)
这是一个已知的错误,分析在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下的补丁存在已知的问题。