9 "gitlabe1.ext.net.nokia.com/ric_dev/sdlgo"
12 type singleBenchmark struct {
18 type multiBenchmark struct {
25 func (bm singleBenchmark) String(oper string) string {
26 return fmt.Sprintf("op = %s key=%d value=%d", oper, bm.keySize, bm.valueSize)
29 func (bm multiBenchmark) String(oper string) string {
30 return fmt.Sprintf("op = %s keycnt=%d key=%d value=%d", oper, bm.keyCount, bm.keySize, bm.valueSize)
32 func BenchmarkSet(b *testing.B) {
33 benchmarks := []singleBenchmark{
37 {"d", 10, 1024 * 1024},
38 {"e", 10, 10 * 1024 * 1024},
42 {"h", 100, 64 * 1024},
43 {"i", 100, 1024 * 1024},
44 {"j", 100, 10 * 1024 * 1024},
47 for _, bm := range benchmarks {
48 b.Run(bm.String("set"), func(b *testing.B) {
49 key := strings.Repeat(bm.key, bm.keySize)
50 value := strings.Repeat("1", bm.valueSize)
51 sdl := sdlgo.Create("namespace")
54 b.RunParallel(func(pb *testing.PB) {
56 err := sdl.Set(key, value)
66 func BenchmarkGet(b *testing.B) {
67 benchmarks := []singleBenchmark{
71 {"d", 10, 1024 * 1024},
72 {"e", 10, 10 * 1024 * 1024},
76 {"h", 100, 64 * 1024},
77 {"i", 100, 1024 * 1024},
78 {"j", 100, 10 * 1024 * 1024},
81 for _, bm := range benchmarks {
82 b.Run(bm.String("Get"), func(b *testing.B) {
83 key := strings.Repeat(bm.key, bm.keySize)
84 value := strings.Repeat("1", bm.valueSize)
85 sdl := sdlgo.Create("namespace")
86 if err := sdl.Set(key, value); err != nil {
90 b.RunParallel(func(pb *testing.PB) {
92 _, err := sdl.Get([]string{key})
102 func BenchmarkMultiSet(b *testing.B) {
103 benchmarks := []multiBenchmark{
113 {"i", 1000, 100, 64},
114 {"j", 5000, 100, 64},
117 for _, bm := range benchmarks {
118 b.Run(bm.String("mset"), func(b *testing.B) {
119 sdl := sdlgo.Create("namespace")
120 value := strings.Repeat("1", bm.valueSize)
121 keyVals := make([]string, 0)
122 for i := 0; i < bm.keyCount; i++ {
123 key := strings.Repeat(bm.keyBase+strconv.Itoa(i), bm.keySize)
124 keyVals = append(keyVals, key, value)
127 b.RunParallel(func(pb *testing.PB) {
129 err := sdl.Set(keyVals)
139 func BenchmarkMultiGet(b *testing.B) {
140 benchmarks := []multiBenchmark{
150 {"i", 1000, 100, 64},
151 {"j", 5000, 100, 64},
154 for _, bm := range benchmarks {
155 b.Run(bm.String("gset"), func(b *testing.B) {
156 sdl := sdlgo.Create("namespace")
157 keyVals := make([]string, 0)
158 for i := 0; i < bm.keyCount; i++ {
159 key := strings.Repeat(bm.keyBase+strconv.Itoa(i), bm.keySize)
160 keyVals = append(keyVals, key)
163 b.RunParallel(func(pb *testing.PB) {
165 _, err := sdl.Get(keyVals)