mirror of https://github.com/docker/docs.git
Improve truncindex benchmarks
Docker-DCO-1.1-Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com> (github: LK4D4)
This commit is contained in:
parent
ed032ddfd6
commit
7eb425ccd1
|
@ -1,6 +1,11 @@
|
||||||
package truncindex
|
package truncindex
|
||||||
|
|
||||||
import "testing"
|
import (
|
||||||
|
"math/rand"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/dotcloud/docker/utils"
|
||||||
|
)
|
||||||
|
|
||||||
// Test the behavior of TruncIndex, an index for querying IDs from a non-conflicting prefix.
|
// Test the behavior of TruncIndex, an index for querying IDs from a non-conflicting prefix.
|
||||||
func TestTruncIndex(t *testing.T) {
|
func TestTruncIndex(t *testing.T) {
|
||||||
|
@ -85,21 +90,155 @@ func assertIndexGet(t *testing.T, index *TruncIndex, input, expectedResult strin
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkTruncIndexAdd(b *testing.B) {
|
func BenchmarkTruncIndexAdd100(b *testing.B) {
|
||||||
ids := []string{"banana", "bananaa", "bananab"}
|
var testSet []string
|
||||||
|
for i := 0; i < 100; i++ {
|
||||||
|
testSet = append(testSet, utils.GenerateRandomID())
|
||||||
|
}
|
||||||
b.ResetTimer()
|
b.ResetTimer()
|
||||||
for i := 0; i < b.N; i++ {
|
for i := 0; i < b.N; i++ {
|
||||||
index := NewTruncIndex([]string{})
|
index := NewTruncIndex([]string{})
|
||||||
for _, id := range ids {
|
for _, id := range testSet {
|
||||||
index.Add(id)
|
if err := index.Add(id); err != nil {
|
||||||
|
b.Fatal(err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkTruncIndexNew(b *testing.B) {
|
func BenchmarkTruncIndexAdd250(b *testing.B) {
|
||||||
ids := []string{"banana", "bananaa", "bananab"}
|
var testSet []string
|
||||||
|
for i := 0; i < 250; i++ {
|
||||||
|
testSet = append(testSet, utils.GenerateRandomID())
|
||||||
|
}
|
||||||
b.ResetTimer()
|
b.ResetTimer()
|
||||||
for i := 0; i < b.N; i++ {
|
for i := 0; i < b.N; i++ {
|
||||||
NewTruncIndex(ids)
|
index := NewTruncIndex([]string{})
|
||||||
|
for _, id := range testSet {
|
||||||
|
if err := index.Add(id); err != nil {
|
||||||
|
b.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func BenchmarkTruncIndexAdd500(b *testing.B) {
|
||||||
|
var testSet []string
|
||||||
|
for i := 0; i < 500; i++ {
|
||||||
|
testSet = append(testSet, utils.GenerateRandomID())
|
||||||
|
}
|
||||||
|
b.ResetTimer()
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
index := NewTruncIndex([]string{})
|
||||||
|
for _, id := range testSet {
|
||||||
|
if err := index.Add(id); err != nil {
|
||||||
|
b.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func BenchmarkTruncIndexGet100(b *testing.B) {
|
||||||
|
var testSet []string
|
||||||
|
var testKeys []string
|
||||||
|
for i := 0; i < 100; i++ {
|
||||||
|
testSet = append(testSet, utils.GenerateRandomID())
|
||||||
|
}
|
||||||
|
index := NewTruncIndex([]string{})
|
||||||
|
for _, id := range testSet {
|
||||||
|
if err := index.Add(id); err != nil {
|
||||||
|
b.Fatal(err)
|
||||||
|
}
|
||||||
|
l := rand.Intn(12) + 12
|
||||||
|
testKeys = append(testKeys, id[:l])
|
||||||
|
}
|
||||||
|
b.ResetTimer()
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
for _, id := range testKeys {
|
||||||
|
if res, err := index.Get(id); err != nil {
|
||||||
|
b.Fatal(res, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func BenchmarkTruncIndexGet250(b *testing.B) {
|
||||||
|
var testSet []string
|
||||||
|
var testKeys []string
|
||||||
|
for i := 0; i < 250; i++ {
|
||||||
|
testSet = append(testSet, utils.GenerateRandomID())
|
||||||
|
}
|
||||||
|
index := NewTruncIndex([]string{})
|
||||||
|
for _, id := range testSet {
|
||||||
|
if err := index.Add(id); err != nil {
|
||||||
|
b.Fatal(err)
|
||||||
|
}
|
||||||
|
l := rand.Intn(12) + 12
|
||||||
|
testKeys = append(testKeys, id[:l])
|
||||||
|
}
|
||||||
|
b.ResetTimer()
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
for _, id := range testKeys {
|
||||||
|
if res, err := index.Get(id); err != nil {
|
||||||
|
b.Fatal(res, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func BenchmarkTruncIndexGet500(b *testing.B) {
|
||||||
|
var testSet []string
|
||||||
|
var testKeys []string
|
||||||
|
for i := 0; i < 500; i++ {
|
||||||
|
testSet = append(testSet, utils.GenerateRandomID())
|
||||||
|
}
|
||||||
|
index := NewTruncIndex([]string{})
|
||||||
|
for _, id := range testSet {
|
||||||
|
if err := index.Add(id); err != nil {
|
||||||
|
b.Fatal(err)
|
||||||
|
}
|
||||||
|
l := rand.Intn(12) + 12
|
||||||
|
testKeys = append(testKeys, id[:l])
|
||||||
|
}
|
||||||
|
b.ResetTimer()
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
for _, id := range testKeys {
|
||||||
|
if res, err := index.Get(id); err != nil {
|
||||||
|
b.Fatal(res, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func BenchmarkTruncIndexNew100(b *testing.B) {
|
||||||
|
var testSet []string
|
||||||
|
for i := 0; i < 100; i++ {
|
||||||
|
testSet = append(testSet, utils.GenerateRandomID())
|
||||||
|
}
|
||||||
|
b.ResetTimer()
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
NewTruncIndex(testSet)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func BenchmarkTruncIndexNew250(b *testing.B) {
|
||||||
|
var testSet []string
|
||||||
|
for i := 0; i < 250; i++ {
|
||||||
|
testSet = append(testSet, utils.GenerateRandomID())
|
||||||
|
}
|
||||||
|
b.ResetTimer()
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
NewTruncIndex(testSet)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func BenchmarkTruncIndexNew500(b *testing.B) {
|
||||||
|
var testSet []string
|
||||||
|
for i := 0; i < 500; i++ {
|
||||||
|
testSet = append(testSet, utils.GenerateRandomID())
|
||||||
|
}
|
||||||
|
b.ResetTimer()
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
NewTruncIndex(testSet)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue