Files
vRp.CD2g_test/utils/buffer/unbounded_benchmark_test.go
kercylan98 08115d463b test: 为 buffer.Unbounded 添加基准测试
我们为 buffer.Unbounded 中的 Put、Load 和 Get
方法添加了基准测试,以便在高并发条件下衡量这些方法的性能。新增的测试将使我们能够验证并提高这些函数的效率。
2023-11-29 16:25:54 +08:00

37 lines
564 B
Go

package buffer_test
import (
"github.com/kercylan98/minotaur/utils/buffer"
"testing"
)
func BenchmarkUnboundedBuffer(b *testing.B) {
ub := buffer.NewUnboundedN[int]()
b.Run("Put", func(b *testing.B) {
for i := 0; i < b.N; i++ {
ub.Put(i)
}
})
b.Run("Load", func(b *testing.B) {
for i := 0; i < b.N; i++ {
ub.Load()
}
})
// 先填充数据以防止 Get 被阻塞
for i := 0; i < b.N; i++ {
ub.Put(i)
}
b.Run("Get", func(b *testing.B) {
b.ResetTimer()
for i := 0; i < b.N; i++ {
ub.Put(i)
<-ub.Get()
ub.Load()
}
})
}