test: 为 buffer.Unbounded 添加基准测试
我们为 buffer.Unbounded 中的 Put、Load 和 Get 方法添加了基准测试,以便在高并发条件下衡量这些方法的性能。新增的测试将使我们能够验证并提高这些函数的效率。
This commit is contained in:
parent
f6ea696df6
commit
08115d463b
|
@ -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()
|
||||
}
|
||||
})
|
||||
}
|
Loading…
Reference in New Issue