mirror of
https://github.com/lukaszraczylo/graphql-monitoring-proxy.git
synced 2026-06-05 23:03:48 +00:00
d141fe3c04
* Fix the introduced bug where RO endpoint could've been accidentally used.
115 lines
2.2 KiB
Go
115 lines
2.2 KiB
Go
package libpack_cache
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/alicebob/miniredis/v2"
|
|
libpack_cache_memory "github.com/lukaszraczylo/graphql-monitoring-proxy/cache/memory"
|
|
libpack_logger "github.com/lukaszraczylo/graphql-monitoring-proxy/logging"
|
|
)
|
|
|
|
const (
|
|
Parallelism = 4
|
|
RequestPerSec = 10000
|
|
)
|
|
|
|
func BenchmarkCacheLookupInMemory(b *testing.B) {
|
|
config = &CacheConfig{
|
|
Logger: libpack_logger.New(),
|
|
Client: libpack_cache_memory.New(5 * time.Minute),
|
|
TTL: 5,
|
|
}
|
|
EnableCache(config)
|
|
|
|
hash := "00000000000000000000000000000000001337"
|
|
data := []byte("it's fine.")
|
|
CacheStore(hash, data)
|
|
|
|
b.SetParallelism(Parallelism)
|
|
b.ResetTimer()
|
|
|
|
b.RunParallel(func(pb *testing.PB) {
|
|
for pb.Next() {
|
|
CacheLookup(hash)
|
|
}
|
|
})
|
|
}
|
|
|
|
func BenchmarkCacheLookupRedis(b *testing.B) {
|
|
redis_server, err := miniredis.Run()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
config = &CacheConfig{
|
|
Logger: libpack_logger.New(),
|
|
TTL: 5,
|
|
}
|
|
config.Redis.DB = 0
|
|
config.Redis.URL = redis_server.Addr()
|
|
config.Redis.Enable = true
|
|
EnableCache(config)
|
|
|
|
hash := "00000000000000000000000000000000001337"
|
|
data := []byte("it's fine.")
|
|
CacheStore(hash, data)
|
|
|
|
b.SetParallelism(Parallelism)
|
|
b.ResetTimer()
|
|
|
|
b.RunParallel(func(pb *testing.PB) {
|
|
for pb.Next() {
|
|
CacheLookup(hash)
|
|
}
|
|
})
|
|
}
|
|
|
|
func BenchmarkCacheStoreInMemory(b *testing.B) {
|
|
config = &CacheConfig{
|
|
Logger: libpack_logger.New(),
|
|
Client: libpack_cache_memory.New(5 * time.Minute),
|
|
TTL: 5,
|
|
}
|
|
EnableCache(config)
|
|
|
|
hash := "00000000000000000000000000000000001337"
|
|
data := []byte("it's fine.")
|
|
|
|
b.SetParallelism(Parallelism)
|
|
b.ResetTimer()
|
|
|
|
b.RunParallel(func(pb *testing.PB) {
|
|
for pb.Next() {
|
|
CacheStore(hash, data)
|
|
}
|
|
})
|
|
}
|
|
|
|
func BenchmarkCacheStoreRedis(b *testing.B) {
|
|
redis_server, err := miniredis.Run()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
config = &CacheConfig{
|
|
Logger: libpack_logger.New(),
|
|
TTL: 5,
|
|
}
|
|
config.Redis.DB = 0
|
|
config.Redis.URL = redis_server.Addr()
|
|
config.Redis.Enable = true
|
|
EnableCache(config)
|
|
|
|
hash := "00000000000000000000000000000000001337"
|
|
data := []byte("it's fine.")
|
|
|
|
b.SetParallelism(Parallelism)
|
|
b.ResetTimer()
|
|
|
|
b.RunParallel(func(pb *testing.PB) {
|
|
for pb.Next() {
|
|
CacheStore(hash, data)
|
|
}
|
|
})
|
|
}
|