github.com/angenalZZZ/gofunc@v0.0.0-20210507121333-48ff1be3917b/data/cache/store/badger_bench_test.go (about)

     1  package store
     2  
     3  import (
     4  	"fmt"
     5  	"math"
     6  	"testing"
     7  )
     8  
     9  func BenchmarkBadgerSet(b *testing.B) {
    10  	store := NewBadger(nil)
    11  	defer func() { _ = store.Close() }()
    12  
    13  	for k := 0.; k <= 10; k++ {
    14  		n := int(math.Pow(2, k))
    15  		b.Run(fmt.Sprintf("%d", n), func(b *testing.B) {
    16  			for i := 0; i < b.N*n; i++ {
    17  				key := fmt.Sprintf("test-%d", n)
    18  				value := []byte(fmt.Sprintf("value-%d", n))
    19  
    20  				_ = store.Set(key, value, &Options{
    21  					Tags: []string{fmt.Sprintf("tag-%d", n)},
    22  				})
    23  			}
    24  		})
    25  	}
    26  }
    27  
    28  func BenchmarkBadgerGet(b *testing.B) {
    29  	store := NewBadger(nil)
    30  	defer func() { _ = store.Close() }()
    31  
    32  	key := "test"
    33  	value := []byte("value")
    34  
    35  	_ = store.Set(key, value, nil)
    36  
    37  	for k := 0.; k <= 10; k++ {
    38  		n := int(math.Pow(2, k))
    39  		b.Run(fmt.Sprintf("%d", n), func(b *testing.B) {
    40  			for i := 0; i < b.N*n; i++ {
    41  				_, _ = store.Get(key)
    42  			}
    43  		})
    44  	}
    45  }