github.com/djinn/mace@v0.0.0-20160729084754-1aae7c7b6a4e/benchmark/cache_test.go (about)

     1  package cachebench
     2  
     3  import (
     4  	"fmt"
     5  	"log"
     6  	"os"
     7  	"testing"
     8  	"time"
     9  
    10  	"github.com/djinn/mace"
    11  	"github.com/muesli/cache2go"
    12  	"gopkg.in/redis.v3"
    13  )
    14  
    15  var (
    16  	logger = log.New(os.Stdout, "Mace:", log.LstdFlags)
    17  )
    18  
    19  func BenchmarkRedis(b *testing.B) {
    20  	client := redis.NewClient(&redis.Options{
    21  		Addr:     "localhost:6379",
    22  		Password: "",
    23  		DB:       0,
    24  	})
    25  	_, err := client.Ping().Result()
    26  	if err != nil {
    27  		panic(err)
    28  	}
    29  	for i := 0; i < b.N; i++ {
    30  		key := fmt.Sprintf("k%d", i)
    31  		err := client.Set(key, key, 0).Err()
    32  		if err != nil {
    33  			panic(err)
    34  		}
    35  		err = client.Del(key).Err()
    36  		if err != nil {
    37  			panic(err)
    38  		}
    39  	}
    40  
    41  }
    42  
    43  func BenchmarkRedisWithExpiry(b *testing.B) {
    44  	client := redis.NewClient(&redis.Options{
    45  		Addr:     "localhost:6379",
    46  		Password: "",
    47  		DB:       0,
    48  	})
    49  	_, err := client.Ping().Result()
    50  	if err != nil {
    51  		panic(err)
    52  	}
    53  	for i := 0; i < b.N; i++ {
    54  		key := fmt.Sprintf("k%d", i)
    55  		err := client.Set(key, key, 300*time.Millisecond).Err()
    56  		if err != nil {
    57  			panic(err)
    58  		}
    59  	}
    60  
    61  }
    62  
    63  func BenchmarkCache2Go(b *testing.B) {
    64  	cache := cache2go.Cache("bench")
    65  	for i := 0; i < b.N; i++ {
    66  		key := fmt.Sprintf("k%d", i)
    67  		cache.Add(key, 0*time.Second, &key)
    68  		cache.Delete(key)
    69  	}
    70  }
    71  
    72  func BenchmarkCache2GoWithExpiry(b *testing.B) {
    73  	cache := cache2go.Cache("benchExpiry")
    74  	for i := 0; i < b.N; i++ {
    75  		key := fmt.Sprintf("k%d", i)
    76  		cache.Add(key, 300*time.Second, &key)
    77  	}
    78  }
    79  
    80  func BenchmarkMace(b *testing.B) {
    81  	cache := mace.Mace("bench")
    82  	for i := 0; i < b.N; i++ {
    83  		key := fmt.Sprintf("k%d", i)
    84  		cache.Set(key, &key, 0*time.Millisecond)
    85  		cache.Delete(key)
    86  	}
    87  }
    88  
    89  func BenchmarkMaceWithExpiry(b *testing.B) {
    90  	cache := mace.Mace("benchExpiry")
    91  	//cache.SetLogger(logger)
    92  	for i := 0; i < b.N; i++ {
    93  		key := fmt.Sprintf("k%d", i)
    94  		cache.Set(key, &key, 300*time.Millisecond)
    95  	}
    96  }
    97  
    98  func BenchmarkStringAlloc( b *testing.B) {
    99  	
   100  }
   101