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