mirror of
https://github.com/minio/minio.git
synced 2025-01-12 23:43:22 -05:00
b23659927c
store the cache in-memory instead of disks to avoid large write amplifications for list heavy workloads, store in memory instead and let it auto expire.
56 lines
1.2 KiB
Go
56 lines
1.2 KiB
Go
package cmd
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
)
|
|
|
|
func Benchmark_bucketMetacache_findCache(b *testing.B) {
|
|
bm := newBucketMetacache("")
|
|
const elements = 50000
|
|
const paths = 100
|
|
if elements%paths != 0 {
|
|
b.Fatal("elements must be divisible by the number of paths")
|
|
}
|
|
var pathNames [paths]string
|
|
for i := range pathNames[:] {
|
|
pathNames[i] = fmt.Sprintf("prefix/%d", i)
|
|
}
|
|
for i := 0; i < elements; i++ {
|
|
bm.findCache(listPathOptions{
|
|
ID: mustGetUUID(),
|
|
Bucket: "",
|
|
BaseDir: pathNames[i%paths],
|
|
Prefix: "",
|
|
FilterPrefix: "",
|
|
Marker: "",
|
|
Limit: 0,
|
|
AskDisks: 0,
|
|
Recursive: false,
|
|
Separator: slashSeparator,
|
|
Create: true,
|
|
CurrentCycle: uint64(i),
|
|
OldestCycle: uint64(i - 1),
|
|
})
|
|
}
|
|
b.ReportAllocs()
|
|
b.ResetTimer()
|
|
for i := 0; i < b.N; i++ {
|
|
bm.findCache(listPathOptions{
|
|
ID: mustGetUUID(),
|
|
Bucket: "",
|
|
BaseDir: pathNames[i%paths],
|
|
Prefix: "",
|
|
FilterPrefix: "",
|
|
Marker: "",
|
|
Limit: 0,
|
|
AskDisks: 0,
|
|
Recursive: false,
|
|
Separator: slashSeparator,
|
|
Create: true,
|
|
CurrentCycle: uint64(i % elements),
|
|
OldestCycle: uint64(0),
|
|
})
|
|
}
|
|
}
|