diff options
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.go | 97 |
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) + } + }) + }) + } +} |