我想评测我的go test -c
生成的基准测试,但是go tool pprof
需要一个通常在main函数内部生成的评测文件,比如this:
func main() {
flag.Parse()
if *cpuprofile != "" {
f, err := os.Create(*cpuprofile)
if err != nil {
log.Fatal(err)
}
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
}
如何在基准测试中创建配置文件?
3条答案
按热度按时间a8jjtwal1#
如www.example.com中所述https://pkg.go.dev/cmd/go#hdr-Testing_flags,您可以使用标志
-cpuprofile
指定配置文件。例如
k0pti3hp2#
将
-cpuprofile
标志用于go test
,如www.example.com中所述http://golang.org/cmd/go/#hdr-Description_of_testing_flagslrl1mhuk3#
这篇文章通过一个例子解释了如何分析基准测试:Benchmark Profiling with pprof.
以下基准测试模拟了一些CPU工作。
要为基准测试生成CPU配置文件,请运行:
-memprofile
与-blockprofile
标志可用于生成内存分配与阻塞调用配置文件。要分析轮廓,请使用Go工具:
这种情况下的瓶颈是互斥锁,这是由于math/rand中的默认源被同步而引起的。
也可使用其他配置文件显示和输出格式,例如
tree
。键入help
可获得更多选项。注意,基准循环之前的任何初始化代码也将被分析。