MCPcopy Index your code
hub / github.com/nutsdb/nutsdb / BenchmarkIterator_Prev

Function BenchmarkIterator_Prev

iterator_bench_test.go:118–149  ·  view source on GitHub ↗

BenchmarkIterator_Prev tests reverse iteration performance

(b *testing.B)

Source from the content-addressed store, hash-verified

116
117// BenchmarkIterator_Prev tests reverse iteration performance
118func BenchmarkIterator_Prev(b *testing.B) {
119 sizes := []int{100, 1000, 10000}
120
121 for _, size := range sizes {
122 b.Run(fmt.Sprintf("Size_%d", size), func(b *testing.B) {
123 db, bucket := setupIteratorBenchmark(b, size)
124 defer func() { _ = db.Close() }()
125
126 b.ResetTimer()
127 b.ReportAllocs()
128
129 for i := 0; i < b.N; i++ {
130 err := db.View(func(tx *Tx) error {
131 iterator := NewIterator(tx, bucket, IteratorOptions{Reverse: true})
132 defer iterator.Release()
133
134 count := 0
135 for iterator.Valid() {
136 count++
137 if !iterator.Next() {
138 break
139 }
140 }
141 return nil
142 })
143 if err != nil {
144 b.Fatalf("View failed: %v", err)
145 }
146 }
147 })
148 }
149}
150
151// BenchmarkIterator_KeyAccess tests key access performance
152func BenchmarkIterator_KeyAccess(b *testing.B) {

Callers

nothing calls this directly

Calls 8

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

Tested by

no test coverage detected