MCPcopy Create free account
hub / github.com/egonelbre/exp / IterBlockCallback

Method IterBlockCallback

bench/sortedset/sortedset.go:136–160  ·  view source on GitHub ↗
(blockSize int, fn func([]int))

Source from the content-addressed store, hash-verified

134}
135
136func (s *Set) IterBlockCallback(blockSize int, fn func([]int)) {
137 block := make([]int, 0, blockSize)
138 j := 0
139 base := 0
140 df := 0
141 k := uint(0)
142 for _, b := range s.data {
143 df = df | (int(b&mask) << k)
144 k += bits
145 if b < cbit {
146 base += df
147 block = append(block, base)
148 df = 0
149 k = 0
150 j += 1
151 if cap(block) == len(block) {
152 fn(block)
153 block = block[0:0:blockSize]
154 }
155 }
156 }
157 if len(block) > 0 {
158 fn(block)
159 }
160}

Callers 4

BenchmarkBlockCallback8Function · 0.80
BenchmarkBlockCallback16Function · 0.80
BenchmarkBlockCallback32Function · 0.80
BenchmarkBlockCallback64Function · 0.80

Calls 1

fnFunction · 0.85

Tested by 4

BenchmarkBlockCallback8Function · 0.64
BenchmarkBlockCallback16Function · 0.64
BenchmarkBlockCallback32Function · 0.64
BenchmarkBlockCallback64Function · 0.64