分析程序

top*_*kip 3 profiling go

我试图描述我的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)

Pau*_*kin 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下的补丁存在已知问题.