压测一个函数(Calculate)

压测该函数前,需要准备测试数据,即被压函数的参数.准备测试数据的这部分时间应该被剔除。

cmd如下

1
go test -test.bench 'CalculateScore' -benchtime=10s

函数实现

1
2
3
4
5
6
7
8
9
func BenchmarkCalculateScore(b *testing.B) {
attrs, rerankList := randomInput() //准备测试数据,即待测函数的参数
b.ResetTimer() //在ResetTimer执行以后才开始计算时间
// 开始压测
for i := 0; i < b.N; i++ {
Calculate(attrs, rerankList)
}
//结束压测
}

Refrence
Go benchmark 详解