(b *testing.B)
| 207 | } |
| 208 | |
| 209 | func 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 | |
| 240 | func benchmarkInitAndMergePgids(maxPgid, mergeCount, mergeSpanLen int) (common.Pgids, common.Pgids) { |
| 241 | const gapSize = 100 |
nothing calls this directly
no test coverage detected