test: concurrent.Pool 增加测试用例

This commit is contained in:
kercylan98 2023-12-23 18:13:30 +08:00
parent 3877b28baa
commit 8f4e65219e
2 changed files with 26 additions and 31 deletions

View File

@ -0,0 +1,26 @@
package concurrent_test
import (
"github.com/kercylan98/minotaur/utils/concurrent"
"testing"
)
func BenchmarkPool_Get2Put(b *testing.B) {
var pool = concurrent.NewPool[map[string]int](func() *map[string]int {
return &map[string]int{}
}, func(data *map[string]int) {
for k := range *data {
delete(*data, k)
}
})
b.ResetTimer()
b.RunParallel(func(pb *testing.PB) {
for pb.Next() {
msg := pool.Get()
pool.Release(msg)
}
})
b.StopTimer()
b.ReportAllocs()
}

View File

@ -1,32 +1 @@
package concurrent_test
import (
"github.com/kercylan98/minotaur/utils/concurrent"
"github.com/kercylan98/minotaur/utils/times"
"testing"
"time"
)
func TestPool_EAC(t *testing.T) {
var p = concurrent.NewPool[int](10, func() int {
return 0
}, func(data int) {
})
go func() {
for i := 0; i < 1000; i++ {
go func() {
for {
p.Release(p.Get())
}
}()
}
}()
go func() {
time.Sleep(2 * time.Second)
p.EAC(2048)
}()
time.Sleep(100 * times.Day)
}