MCPcopy Create free account
hub / github.com/nutsdb/nutsdb / BenchmarkIterator_KeyValueAccess

Function BenchmarkIterator_KeyValueAccess

iterator_bench_test.go:209–237  ·  view source on GitHub ↗

BenchmarkIterator_KeyValueAccess tests combined key-value access

(b *testing.B)

Source from the content-addressed store, hash-verified

207
208// BenchmarkIterator_KeyValueAccess tests combined key-value access
209func BenchmarkIterator_KeyValueAccess(b *testing.B) {
210 db, bucket := setupIteratorBenchmark(b, 10000)
211 defer func() { _ = db.Close() }()
212
213 b.ResetTimer()
214 b.ReportAllocs()
215
216 for i := 0; i < b.N; i++ {
217 err := db.View(func(tx *Tx) error {
218 iterator := NewIterator(tx, bucket, IteratorOptions{Reverse: false})
219 defer iterator.Release()
220
221 for iterator.Valid() {
222 _ = iterator.Key()
223 _, err := iterator.Value()
224 if err != nil {
225 return err
226 }
227 if !iterator.Next() {
228 break
229 }
230 }
231 return nil
232 })
233 if err != nil {
234 b.Fatalf("View failed: %v", err)
235 }
236 }
237}
238
239// BenchmarkIterator_Seek tests seek operation performance
240func BenchmarkIterator_Seek(b *testing.B) {

Callers

nothing calls this directly

Calls 9

ReleaseMethod · 0.95
ValidMethod · 0.95
KeyMethod · 0.95
ValueMethod · 0.95
NextMethod · 0.95
setupIteratorBenchmarkFunction · 0.85
NewIteratorFunction · 0.85
ViewMethod · 0.80
CloseMethod · 0.65

Tested by

no test coverage detected