summaryrefslogtreecommitdiffstats
path: root/dependencies/pkg/mod/github.com/go-redis/redis/v8@v8.11.5/internal/pool/bench_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'dependencies/pkg/mod/github.com/go-redis/redis/v8@v8.11.5/internal/pool/bench_test.go')
-rw-r--r--dependencies/pkg/mod/github.com/go-redis/redis/v8@v8.11.5/internal/pool/bench_test.go97
1 files changed, 97 insertions, 0 deletions
diff --git a/dependencies/pkg/mod/github.com/go-redis/redis/v8@v8.11.5/internal/pool/bench_test.go b/dependencies/pkg/mod/github.com/go-redis/redis/v8@v8.11.5/internal/pool/bench_test.go
new file mode 100644
index 0000000..dec5d3f
--- /dev/null
+++ b/dependencies/pkg/mod/github.com/go-redis/redis/v8@v8.11.5/internal/pool/bench_test.go
@@ -0,0 +1,97 @@
+package pool_test
+
+import (
+ "context"
+ "fmt"
+ "testing"
+ "time"
+
+ "github.com/go-redis/redis/v8/internal/pool"
+)
+
+type poolGetPutBenchmark struct {
+ poolSize int
+}
+
+func (bm poolGetPutBenchmark) String() string {
+ return fmt.Sprintf("pool=%d", bm.poolSize)
+}
+
+func BenchmarkPoolGetPut(b *testing.B) {
+ ctx := context.Background()
+ benchmarks := []poolGetPutBenchmark{
+ {1},
+ {2},
+ {8},
+ {32},
+ {64},
+ {128},
+ }
+ for _, bm := range benchmarks {
+ b.Run(bm.String(), func(b *testing.B) {
+ connPool := pool.NewConnPool(&pool.Options{
+ Dialer: dummyDialer,
+ PoolSize: bm.poolSize,
+ PoolTimeout: time.Second,
+ IdleTimeout: time.Hour,
+ IdleCheckFrequency: time.Hour,
+ })
+
+ b.ResetTimer()
+
+ b.RunParallel(func(pb *testing.PB) {
+ for pb.Next() {
+ cn, err := connPool.Get(ctx)
+ if err != nil {
+ b.Fatal(err)
+ }
+ connPool.Put(ctx, cn)
+ }
+ })
+ })
+ }
+}
+
+type poolGetRemoveBenchmark struct {
+ poolSize int
+}
+
+func (bm poolGetRemoveBenchmark) String() string {
+ return fmt.Sprintf("pool=%d", bm.poolSize)
+}
+
+func BenchmarkPoolGetRemove(b *testing.B) {
+ ctx := context.Background()
+ benchmarks := []poolGetRemoveBenchmark{
+ {1},
+ {2},
+ {8},
+ {32},
+ {64},
+ {128},
+ }
+
+ for _, bm := range benchmarks {
+ b.Run(bm.String(), func(b *testing.B) {
+ connPool := pool.NewConnPool(&pool.Options{
+ Dialer: dummyDialer,
+ PoolSize: bm.poolSize,
+ PoolTimeout: time.Second,
+ IdleTimeout: time.Hour,
+ IdleCheckFrequency: time.Hour,
+ })
+
+ b.ResetTimer()
+
+ b.RunParallel(func(pb *testing.PB) {
+ for pb.Next() {
+ cn, err := connPool.Get(ctx)
+ if err != nil {
+ b.Fatal(err)
+ }
+ connPool.Remove(ctx, cn, nil)
+ }
+ })
+ })
+ }
+}