diff --git a/mvcc/index_bench_test.go b/mvcc/index_bench_test.go new file mode 100644 index 000000000..70882b3c9 --- /dev/null +++ b/mvcc/index_bench_test.go @@ -0,0 +1,41 @@ +// Copyright 2016 The etcd Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package mvcc + +import ( + "fmt" + "testing" +) + +func BenchmarkIndexRestore(b *testing.B) { + var ( + keys = make([][]byte, b.N) + createds = make([]revision, b.N) + modifieds = make([]revision, b.N) + ver int64 = 1 + ) + for i := 0; i < b.N; i++ { + keys[i] = []byte(fmt.Sprintf("foo%d", i)) + createds[i] = revision{int64(i), 0} + modifieds[i] = revision{int64(i), 1} + } + + kvindex := newTreeIndex() + + b.ResetTimer() + for i := 0; i < b.N; i++ { + kvindex.Restore(keys[i], createds[i], modifieds[i], ver) + } +}