gpt4 book ai didi

testing - Go-lang测试,Benchmark上Parallel Setting是什么意思?

转载 作者:数据小太阳 更新时间:2023-10-29 03:14:53 26 4
gpt4 key购买 nike

https://golang.org/pkg/testing/描述了我们可以使用 testing.B.RunParallel() 函数在并行设置 中运行基准测试。我尝试编写简单的测试代码:

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() 的比第一个基准测试慢。

其实在benchmarking中parallel setting是什么意思?为什么如果我使用 RunParallel() 会变慢?

最佳答案

第一个基准测试中的 for 循环让所有测试按顺序运行,一次一个,性能是时间除以迭代次数。

RunParallel 基准测试在可用线程之间划分迭代。类似地计算性能,可能平均每个组。这一点是几个(确切的 # 基于您的 GOMAXPROCS 设置)测试迭代同时运行。这在测试具有共享资源和锁定的函数时特别有用,它们可能单独运行良好但在并发运行时会引入性能问题。

关于testing - Go-lang测试,Benchmark上Parallel Setting是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39104879/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com