// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
|
|
// All rights reserved.
|
|
//
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
package cache
|
|
|
|
import (
|
|
"math/rand"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func BenchmarkLRUCache(b *testing.B) {
|
|
c := NewCache(NewLRU(10000))
|
|
|
|
b.SetParallelism(10)
|
|
b.RunParallel(func(pb *testing.PB) {
|
|
r := rand.New(rand.NewSource(time.Now().UnixNano()))
|
|
|
|
for pb.Next() {
|
|
key := uint64(r.Intn(1000000))
|
|
c.Get(0, key, func() (int, Value) {
|
|
return 1, key
|
|
}).Release()
|
|
}
|
|
})
|
|
}
|