diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 12:36:04 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 12:36:04 +0000 |
commit | b09c6d56832eb1718c07d74abf3bc6ae3fe4e030 (patch) | |
tree | d2caec2610d4ea887803ec9e9c3cd77136c448ba /dependencies/pkg/mod/github.com/go-redis/redis/v8@v8.11.5/internal/pool/bench_test.go | |
parent | Initial commit. (diff) | |
download | icingadb-b09c6d56832eb1718c07d74abf3bc6ae3fe4e030.tar.xz icingadb-b09c6d56832eb1718c07d74abf3bc6ae3fe4e030.zip |
Adding upstream version 1.1.0.upstream/1.1.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-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) + } + }) + }) + } +} |