在https://golang.org/pkg/testing/中描述我们可以使用testing.B.RunParallel()
函数来运行并行设置中的基准。我试着写简单的测试代码:Go-lang测试,Parallel Setting on Benchmark的含义是什么?
func BenchmarkFunctionSome(b *testing.B) {
for i := 0; i < b.N; i++ {
SomeFunction()
}
}
,然后我把它改为使用RunParallel()
func BenchmarkFunctionSome(b *testing.B) {
b.RunParallel(func(pb *testing.PB) {
for pb.Next() {
SomeFunction()
}
})
}
和使用RunParallel()
比第一基准慢的一个。
其实并行设置在基准测试中的含义是什么?为什么它变得更慢,如果我用RunParallel()
?
其含义在RunParallel方法的godoc中描述:https://golang.org/pkg/testing/#B.RunParallel。有什么特别的你不明白吗? –
为什么我们使用RunParallel时速度较慢?没有它,我得到了0.3x ns/op,但RunParallel我得到了1.1x ns/op。这个平行基准如何工作? –