[英]pprof (for golang) doesn't show details for my package
我一直在尝试使用pprof来分析我的go应用程序( evm-specification-miner
),但是输出并不是真的有用:
(pprof) top5
108.59mins of 109.29mins total (99.36%)
Dropped 607 nodes (cum <= 0.55mins)
Showing top 5 nodes out of 103 (cum >= 0.98mins)
flat flat% sum% cum cum%
107.83mins 98.66% 98.66% 108.64mins 99.40% [evm-specification-miner]
0.36mins 0.33% 98.99% 6mins 5.49% net.dialIP
0.30mins 0.28% 99.27% 4.18mins 3.83% net.listenIP
0.06mins 0.052% 99.32% 34.66mins 31.71%
github.com/urfave/cli.BoolFlag.ApplyWithError
0.04mins 0.036% 99.36% 0.98mins 0.9% net.probeIPv6Stack
这是累积输出:
(pprof) top5 --cum
1.80hrs of 1.82hrs total (98.66%)
Dropped 607 nodes (cum <= 0.01hrs)
Showing top 5 nodes out of 103 (cum >= 1.53hrs)
flat flat% sum% cum cum%
1.80hrs 98.66% 98.66% 1.81hrs 99.40% [evm-specification-miner]
0 0% 98.66% 1.53hrs 83.93% net.IP.matchAddrFamily
0 0% 98.66% 1.53hrs 83.92% net.(*UDPConn).WriteToUDP
0 0% 98.66% 1.53hrs 83.90% net.sockaddrToUDP
0 0% 98.66% 1.53hrs 83.89% net.(*UDPConn).readMsg
正如你所看到的,大部分的时间都花在evm-specification-miner
(这是我去应用程序的名称),但我一直无法获得更多的细节,甚至了解这些方括号的意思(有一问题类似的问题,但没有得到任何答案)。
这是build和pprof命令:
go install evm-specification-miner
go tool pprof evm-specification-miner cpuprof
我什至尝试了调试标志-gcflags "-N -l"
(如此处所述: https : -gcflags "-N -l"
),但无济于事。
概要分析通过调用pprof.StartCPUProfile()
和pprof.StopCPUProfile()
如本博客文章所述: https : pprof.StopCPUProfile()
:
func StartProfiling(cpuprof string) error {
f, err := os.Create(cpuprof)
if err != nil {
return err
}
return pprof.StartCPUProfile(f)
}
func StopProfiling() error {
pprof.StopCPUProfile()
return nil
}
StartProfiling
在main()
的开始处调用,在收到信号(中断或终止)(或程序正常终止)时调用StopProfiling
。 该配置文件是在中断后获得的。
好像更新到1.9rc1修复了它。
我的概要文件中不再有[evm-specifiation-miner]
(为了记录起见,最重要的功能甚至都不来自我自己的软件包,因此比以前没有出现过更奇怪)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.