61 lines
1.2 KiB
Go
61 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"strconv"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/allegro/bigcache/v3"
|
|
)
|
|
|
|
func BenchmarkMapSet(b *testing.B) {
|
|
m := make(map[string]int, b.N)
|
|
for i := 0; i < b.N; i++ {
|
|
m[strconv.Itoa(i)] = i
|
|
}
|
|
}
|
|
|
|
func BenchmarkMapGetSet(b *testing.B) {
|
|
m := make(map[string]int, b.N)
|
|
for i := 0; i < 1000; i++ {
|
|
m[strconv.Itoa(i)] = i
|
|
}
|
|
for i := 0; i < b.N; i++ {
|
|
_, _ = m[strconv.Itoa(i%1000)]
|
|
}
|
|
}
|
|
|
|
func BenchmarkCacheSet(b *testing.B) {
|
|
cache := NewCache()
|
|
for i := 0; i < b.N; i++ {
|
|
cache.Set(strconv.Itoa(i), i, 0)
|
|
}
|
|
}
|
|
|
|
func BenchmarkCacheSetGet(b *testing.B) {
|
|
cache := NewCache()
|
|
for i := 0; i < 1000; i++ {
|
|
cache.Set(strconv.Itoa(i), i, 0)
|
|
}
|
|
for i := 0; i < b.N; i++ {
|
|
cache.Get(strconv.Itoa(i % 1000))
|
|
}
|
|
}
|
|
|
|
func BenchmarkBigCacheSet(b *testing.B) {
|
|
cache, _ := bigcache.NewBigCache(bigcache.DefaultConfig(10 * time.Minute))
|
|
for i := 0; i < b.N; i++ {
|
|
cache.Set(strconv.Itoa(i), []byte(strconv.Itoa(i)))
|
|
}
|
|
}
|
|
|
|
func BenchmarkBigCacheSetGet(b *testing.B) {
|
|
cache, _ := bigcache.NewBigCache(bigcache.DefaultConfig(10 * time.Minute))
|
|
for i := 0; i < 1000; i++ {
|
|
cache.Set(strconv.Itoa(i), []byte(strconv.Itoa(i)))
|
|
}
|
|
for i := 0; i < b.N; i++ {
|
|
cache.Get(strconv.Itoa(i % 1000))
|
|
}
|
|
}
|