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