test: 为 buffer.Unbounded 添加基准测试

我们为 buffer.Unbounded 中的 Put、Load 和 Get
方法添加了基准测试,以便在高并发条件下衡量这些方法的性能。新增的测试将使我们能够验证并提高这些函数的效率。
This commit is contained in:
kercylan98 2023-11-29 16:25:54 +08:00
parent f6ea696df6
commit 08115d463b
1 changed files with 36 additions and 0 deletions

View File

@ -0,0 +1,36 @@
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()
}
})
}