基准测试
基准函数就是在一定的工作负载下检测程序性能的一种方法。
文件名:xxx_test.go
函数名:func BenchmarkXxx(b *testing.B)
基准测试指定函数:go test -v -run="none" -bench=函数名
-bench=
支持正则表达式,例如-bench=.
-count=次数
,测试次数。- 运行基准测试之前会执行包里所有的单元测试,所以要指定
run
不执行单元测试
示例:
func BenchmarkWf(b *testing.B) {
for i := 0; i < b.N ; i++ {
函数名()
}
}
生成cpu和mem使用情况报告
cpu:go test -run=XXX -bench=. -cpuprofile=prof.out
mem:go test -run=XXX -bench=. -memprofile=prof.out
查看性能分析报告:go tool pprof prof.out
注意:
1.最快的程序通常是那些进行内存分配次数最少的程序。
2.对一个程序进行基准测试可以帮助我们选择最小缓冲区并带来最佳的性能表现。(高性价比)