MCPcopy
hub / github.com/etcd-io/bbolt / Benchmark_freelist_hashmapMergeSpans

Function Benchmark_freelist_hashmapMergeSpans

internal/freelist/hashmap_test.go:209–238  ·  view source on GitHub ↗
(b *testing.B)

Source from the content-addressed store, hash-verified

207}
208
209func Benchmark_freelist_hashmapMergeSpans(b *testing.B) {
210 type testCase struct {
211 maxPgid int
212 mergeCount int
213 }
214
215 testCases := []testCase{
216 {maxPgid: 1000, mergeCount: 500},
217 {maxPgid: 5000, mergeCount: 2500},
218 {maxPgid: 10000, mergeCount: 5000},
219 }
220 mergeSpanLens := []int{1, 16, 32, 64}
221
222 for _, tc := range testCases {
223 for _, mergeSpanLen := range mergeSpanLens {
224 benchmarkName := fmt.Sprintf("max%d_merge%d_span%d", tc.maxPgid, tc.mergeCount, mergeSpanLen)
225 initIDs, mergePgids := benchmarkInitAndMergePgids(tc.maxPgid, tc.mergeCount, mergeSpanLen)
226
227 b.Run(benchmarkName, func(b *testing.B) {
228 b.Run("nonBatch", func(b *testing.B) {
229 benchmarkHashMapMergeSpansNonBatch(b, initIDs, mergePgids)
230 })
231
232 b.Run("batch", func(b *testing.B) {
233 benchmarkHashMapMergeSpans(b, initIDs, mergePgids)
234 })
235 })
236 }
237 }
238}
239
240func benchmarkInitAndMergePgids(maxPgid, mergeCount, mergeSpanLen int) (common.Pgids, common.Pgids) {
241 const gapSize = 100

Callers

nothing calls this directly

Calls 4

RunMethod · 0.80

Tested by

no test coverage detected