Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

implement batch iterators #243

Merged
merged 4 commits into from
Apr 14, 2018
Merged

implement batch iterators #243

merged 4 commits into from
Apr 14, 2018

Conversation

richardstartin
Copy link
Member

Sorry, I had to erase the last branch because of some of the commits. This is the same code, complete with the buffer implementation. I'm still keen to get some help benchmarking it.

@richardstartin
Copy link
Member Author

richardstartin commented Apr 12, 2018

The difference is huge:

Benchmark                                    Mode  Cnt     Score     Error  Units
IteratorsBenchmark32.testBatch_a             avgt    5     0.698 ±   0.137  ms/op
IteratorsBenchmark32.testBatch_b             avgt    5    41.826 ±   7.154  ms/op
IteratorsBenchmark32.testBatch_c             avgt    5   357.161 ±  53.673  ms/op
IteratorsBenchmark32.testFlyweight_a         avgt    5     0.765 ±   0.111  ms/op
IteratorsBenchmark32.testFlyweight_b         avgt    5   112.719 ±  11.189  ms/op
IteratorsBenchmark32.testFlyweight_c         avgt    5  1501.626 ± 350.485  ms/op
IteratorsBenchmark32.testReverseFlyweight_a  avgt    5     0.607 ±   0.015  ms/op
IteratorsBenchmark32.testReverseFlyweight_b  avgt    5   113.243 ±   9.628  ms/op
IteratorsBenchmark32.testReverseFlyweight_c  avgt    5  1391.770 ±  61.040  ms/op
IteratorsBenchmark32.testReverseStandard_a   avgt    5     0.639 ±   0.066  ms/op
IteratorsBenchmark32.testReverseStandard_b   avgt    5   113.802 ±   5.101  ms/op
IteratorsBenchmark32.testReverseStandard_c   avgt    5  1515.038 ± 120.973  ms/op
IteratorsBenchmark32.testStandard_a          avgt    5     0.792 ±   0.304  ms/op
IteratorsBenchmark32.testStandard_b          avgt    5   114.074 ±  19.487  ms/op
IteratorsBenchmark32.testStandard_c          avgt    5  1411.684 ±  32.432  ms/op

The numbers above are with 1024 element buffer, there's investigation to be done on what the best buffer size is.

@coveralls
Copy link

coveralls commented Apr 12, 2018

Coverage Status

Coverage increased (+0.1%) to 91.338% when pulling 65373cf on richardstartin:iterators2 into 50515ad on RoaringBitmap:master.

@richardstartin
Copy link
Member Author

@richardstartin I think we want to do something meaningful like sum the values being iterated over. And compare the old-school iterators with the new iterators.

Is this what you have in mind?

Yes, we should do this for some kind of typical OLAP use case like computing the sum of a column of numeric values, masked by a bitmap. Even those this iteration style is faster than the status quo, it will lead to unpredictable access patterns into such a column of numbers, which will be difficult for JIT compilers to optimise. When iterating over runs, it should be possible to get good vectorised code for the sum.

public int next(int key, int[] buffer) {
int consumed = 0;
short[] data = array.content;
while (consumed < buffer.length && index < array.getCardinality()) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would be tempted to send array.getCardinality() and buffer.length to final local variables. Just to be safe performance-wise.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would be surprised if this made a difference. Since cardinality is not volatile, it is permissible to store the variable in a register. The method call will very likely be inlined. Nevertheless, I will try it, and I want to give this code the best chance against the alternative approach I have in mind.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would be surprised if this made a difference.

So would I.

while (consumed < buffer.length) {
while (word == 0) {
++wordIndex;
if (wordIndex == 1024) {
Copy link
Member

@lemire lemire Apr 13, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nevermind: I don't understand this if (wordIndex == 1024) clause. Maybe a comment is warranted.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh. Now I see it.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This could indeed be cleaned up.

} else {
cursor += chunk;
}
} while (consumed < buffer.length && run != runs.numberOfRuns());
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd be tempted to send buffer.length and runs.numberOfRuns() to final local variables, to ensure best performance.

public int next(int key, int[] buffer) {
int consumed = 0;
ShortBuffer data = array.content;
while (consumed < buffer.length && index < array.getCardinality()) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same comment, I'd be tempted to send buffer.length and array.getCardinality() to final local variables.

int[] buffer = benchmarkState.buffer;
int batch = 0;
while (it.hasNext()) {
batch = it.nextBatch(buffer);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here I would iterate over the buffer otherwise I think that the test is not fair against standard iterators.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I doubt this can actually be measured unless each value is folded into an aggregate, I would expect an optimising compiler to realise that only the last element is used. I will delete these new benchmarks and start a new set of comparative benchmarks.

int[] buffer = benchmarkState.buffer;
int batch = 0;
while (it.hasNext()) {
batch = it.nextBatch(buffer);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same comment: I would iterate over the buffer otherwise I think that the test is not fair against standard iterators.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ditto

@@ -237,6 +270,9 @@ public int testReverseFlyweight_c(BenchmarkState benchmarkState) {
@State(Scope.Benchmark)
public static class BenchmarkState {


int[] buffer = new int[256];
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's 1kB (256*4) which is going to find in L1. Good. You want buffer to find in L1 cache. So 1kB is good.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, this does a lot better than 1024. I think the main benefit of this approach in general is decoupling instruction chains allowing more pipelining. Maybe even 64 elements is enough to achieve this.

@lemire
Copy link
Member

lemire commented Apr 13, 2018

@richardstartin Have a look at my comments.

@richardstartin
Copy link
Member Author

The new benchmark will take a couple of hours to run but should explore some of the dimensions of the problem.

@richardstartin
Copy link
Member Author

richardstartin commented Apr 13, 2018

This is up to 10x faster than the standard iterator.

Benchmark (bufferSize) (dirtiness) (keys) (runniness) Mode Cnt Score Error Units Ratio
BatchIteratorBenchmark.batchIterate 64 0.1 8 0.1 avgt 5 0.152 0.004 ms/op 0.487179
BatchIteratorBenchmark.batchIterate 64 0.1 8 0.25 avgt 5 0.173 0.007 ms/op 0.508824
BatchIteratorBenchmark.batchIterate 64 0.1 8 0.5 avgt 5 0.116 0.005 ms/op 0.240664
BatchIteratorBenchmark.batchIterate 64 0.1 64 0.1 avgt 5 0.59 0.014 ms/op 0.517998
BatchIteratorBenchmark.batchIterate 64 0.1 64 0.25 avgt 5 1.281 0.033 ms/op 0.429146
BatchIteratorBenchmark.batchIterate 64 0.1 64 0.5 avgt 5 1.841 0.041 ms/op 0.415576
BatchIteratorBenchmark.batchIterate 64 0.1 128 0.1 avgt 5 1.014 0.022 ms/op 0.293488
BatchIteratorBenchmark.batchIterate 64 0.1 128 0.25 avgt 5 2.034 0.122 ms/op 0.42758
BatchIteratorBenchmark.batchIterate 64 0.1 128 0.5 avgt 5 3.795 0.124 ms/op 0.414256
BatchIteratorBenchmark.batchIterate 64 0.1 256 0.1 avgt 5 2.257 0.083 ms/op 0.642288
BatchIteratorBenchmark.batchIterate 64 0.1 256 0.25 avgt 5 3.637 0.117 ms/op 0.317171
BatchIteratorBenchmark.batchIterate 64 0.1 256 0.5 avgt 5 7.014 0.68 ms/op 0.39471
BatchIteratorBenchmark.batchIterate 64 0.1 512 0.1 avgt 5 4.065 0.112 ms/op 0.389032
BatchIteratorBenchmark.batchIterate 64 0.1 512 0.25 avgt 5 7.852 0.233 ms/op 0.320555
BatchIteratorBenchmark.batchIterate 64 0.1 512 0.5 avgt 5 16.014 0.499 ms/op 0.446533
BatchIteratorBenchmark.batchIterate 64 0.1 1024 0.1 avgt 5 9.729 0.224 ms/op 0.443538
BatchIteratorBenchmark.batchIterate 64 0.1 1024 0.25 avgt 5 18.215 0.3 ms/op 0.441351
BatchIteratorBenchmark.batchIterate 64 0.1 1024 0.5 avgt 5 31.046 1.081 ms/op 0.403646
BatchIteratorBenchmark.batchIterate 64 0.1 2096 0.1 avgt 5 16.234 0.265 ms/op 0.365985
BatchIteratorBenchmark.batchIterate 64 0.1 2096 0.25 avgt 5 37.554 1.05 ms/op 0.431432
BatchIteratorBenchmark.batchIterate 64 0.1 2096 0.5 avgt 5 63.384 4.159 ms/op 0.399061
BatchIteratorBenchmark.batchIterate 64 0.1 4096 0.1 avgt 5 33.609 1.013 ms/op 0.393152
BatchIteratorBenchmark.batchIterate 64 0.1 4096 0.25 avgt 5 64.756 2.629 ms/op 0.377076
BatchIteratorBenchmark.batchIterate 64 0.1 4096 0.5 avgt 5 128.456 21.918 ms/op 0.442656
BatchIteratorBenchmark.batchIterate 64 0.1 8192 0.1 avgt 5 81.682 6.423 ms/op 0.444214
BatchIteratorBenchmark.batchIterate 64 0.1 8192 0.25 avgt 5 132.691 8.358 ms/op 0.406177
BatchIteratorBenchmark.batchIterate 64 0.1 8192 0.5 avgt 5 241.221 16.687 ms/op 0.401826
BatchIteratorBenchmark.batchIterate 64 0.1 16384 0.1 avgt 5 139.013 3.735 ms/op 0.379253
BatchIteratorBenchmark.batchIterate 64 0.1 16384 0.25 avgt 5 268.452 18.254 ms/op 0.402618
BatchIteratorBenchmark.batchIterate 64 0.1 16384 0.5 avgt 5 489.006 14.223 ms/op 0.413245
BatchIteratorBenchmark.batchIterate 64 0.25 8 0.1 avgt 5 0.059 0.007 ms/op 0.027039
BatchIteratorBenchmark.batchIterate 64 0.25 8 0.25 avgt 5 0.017 0.001 ms/op 0.050445
BatchIteratorBenchmark.batchIterate 64 0.25 8 0.5 avgt 5 0.321 0.017 ms/op 0.46657
BatchIteratorBenchmark.batchIterate 64 0.25 64 0.1 avgt 5 0.85 0.044 ms/op 0.120824
BatchIteratorBenchmark.batchIterate 64 0.25 64 0.25 avgt 5 1.057 0.023 ms/op 0.360382
BatchIteratorBenchmark.batchIterate 64 0.25 64 0.5 avgt 5 1.779 0.021 ms/op 0.369624
BatchIteratorBenchmark.batchIterate 64 0.25 128 0.1 avgt 5 2.41 0.152 ms/op 0.180714
BatchIteratorBenchmark.batchIterate 64 0.25 128 0.25 avgt 5 1.888 0.052 ms/op 0.41844
BatchIteratorBenchmark.batchIterate 64 0.25 128 0.5 avgt 5 3.561 0.095 ms/op 0.365493
BatchIteratorBenchmark.batchIterate 64 0.25 256 0.1 avgt 5 3.888 0.125 ms/op 0.130382
BatchIteratorBenchmark.batchIterate 64 0.25 256 0.25 avgt 5 4.053 0.101 ms/op 0.362652
BatchIteratorBenchmark.batchIterate 64 0.25 256 0.5 avgt 5 8.183 0.334 ms/op 0.438555
BatchIteratorBenchmark.batchIterate 64 0.25 512 0.1 avgt 5 8.005 0.501 ms/op 0.133731
BatchIteratorBenchmark.batchIterate 64 0.25 512 0.25 avgt 5 9.106 0.379 ms/op 0.436508
BatchIteratorBenchmark.batchIterate 64 0.25 512 0.5 avgt 5 16.031 0.415 ms/op 0.426731
BatchIteratorBenchmark.batchIterate 64 0.25 1024 0.1 avgt 5 18.092 0.552 ms/op 0.134784
BatchIteratorBenchmark.batchIterate 64 0.25 1024 0.25 avgt 5 18.414 0.987 ms/op 0.434047
BatchIteratorBenchmark.batchIterate 64 0.25 1024 0.5 avgt 5 31.403 0.839 ms/op 0.411853
BatchIteratorBenchmark.batchIterate 64 0.25 2096 0.1 avgt 5 36.718 1.185 ms/op 0.14975
BatchIteratorBenchmark.batchIterate 64 0.25 2096 0.25 avgt 5 29.909 1.601 ms/op 0.329003
BatchIteratorBenchmark.batchIterate 64 0.25 2096 0.5 avgt 5 62.156 1.963 ms/op 0.404709
BatchIteratorBenchmark.batchIterate 64 0.25 4096 0.1 avgt 5 66.285 1.7 ms/op 0.137981
BatchIteratorBenchmark.batchIterate 64 0.25 4096 0.25 avgt 5 67.616 14.608 ms/op 0.403463
BatchIteratorBenchmark.batchIterate 64 0.25 4096 0.5 avgt 5 122.925 9.033 ms/op 0.419707
BatchIteratorBenchmark.batchIterate 64 0.25 8192 0.1 avgt 5 135.031 7.276 ms/op 0.137192
BatchIteratorBenchmark.batchIterate 64 0.25 8192 0.25 avgt 5 126.579 11.576 ms/op 0.375606
BatchIteratorBenchmark.batchIterate 64 0.25 8192 0.5 avgt 5 244.578 12.786 ms/op 0.404477
BatchIteratorBenchmark.batchIterate 64 0.25 16384 0.1 avgt 5 267.245 7.511 ms/op 0.130727
BatchIteratorBenchmark.batchIterate 64 0.25 16384 0.25 avgt 5 273.839 12.066 ms/op 0.415016
BatchIteratorBenchmark.batchIterate 64 0.25 16384 0.5 avgt 5 497.041 15.425 ms/op 0.42489
BatchIteratorBenchmark.batchIterate 64 0.5 8 0.1 avgt 5 0.336 0.021 ms/op 0.710359
BatchIteratorBenchmark.batchIterate 64 0.5 8 0.25 avgt 5 0.312 0.01 ms/op 0.320658
BatchIteratorBenchmark.batchIterate 64 0.5 8 0.5 avgt 5 0.333 0.003 ms/op 0.457418
BatchIteratorBenchmark.batchIterate 64 0.5 64 0.1 avgt 5 1.941 0.097 ms/op 0.162074
BatchIteratorBenchmark.batchIterate 64 0.5 64 0.25 avgt 5 2.28 0.096 ms/op 0.138889
BatchIteratorBenchmark.batchIterate 64 0.5 64 0.5 avgt 5 1.822 0.031 ms/op 0.421077
BatchIteratorBenchmark.batchIterate 64 0.5 128 0.1 avgt 5 4.177 0.126 ms/op 0.168529
BatchIteratorBenchmark.batchIterate 64 0.5 128 0.25 avgt 5 3.485 0.133 ms/op 0.138025
BatchIteratorBenchmark.batchIterate 64 0.5 128 0.5 avgt 5 4.125 0.16 ms/op 0.476218
BatchIteratorBenchmark.batchIterate 64 0.5 256 0.1 avgt 5 7.325 0.335 ms/op 0.132543
BatchIteratorBenchmark.batchIterate 64 0.5 256 0.25 avgt 5 8.011 0.295 ms/op 0.133742
BatchIteratorBenchmark.batchIterate 64 0.5 256 0.5 avgt 5 7.028 0.18 ms/op 0.354949
BatchIteratorBenchmark.batchIterate 64 0.5 512 0.1 avgt 5 14.647 0.673 ms/op 0.131193
BatchIteratorBenchmark.batchIterate 64 0.5 512 0.25 avgt 5 14.763 0.402 ms/op 0.11887
BatchIteratorBenchmark.batchIterate 64 0.5 512 0.5 avgt 5 15.356 0.749 ms/op 0.407202
BatchIteratorBenchmark.batchIterate 64 0.5 1024 0.1 avgt 5 29.911 0.786 ms/op 0.127913
BatchIteratorBenchmark.batchIterate 64 0.5 1024 0.25 avgt 5 30.769 1.022 ms/op 0.133419
BatchIteratorBenchmark.batchIterate 64 0.5 1024 0.5 avgt 5 29.013 0.634 ms/op 0.396781
BatchIteratorBenchmark.batchIterate 64 0.5 2096 0.1 avgt 5 60.273 2.383 ms/op 0.128653
BatchIteratorBenchmark.batchIterate 64 0.5 2096 0.25 avgt 5 63.27 3.062 ms/op 0.135002
BatchIteratorBenchmark.batchIterate 64 0.5 2096 0.5 avgt 5 62.493 2.6 ms/op 0.577201
BatchIteratorBenchmark.batchIterate 64 0.5 4096 0.1 avgt 5 117.218 6.262 ms/op 0.125052
BatchIteratorBenchmark.batchIterate 64 0.5 4096 0.25 avgt 5 121.837 2.55 ms/op 0.133973
BatchIteratorBenchmark.batchIterate 64 0.5 4096 0.5 avgt 5 120.966 6.148 ms/op 0.407947
BatchIteratorBenchmark.batchIterate 64 0.5 8192 0.1 avgt 5 234.861 9.849 ms/op 0.127592
BatchIteratorBenchmark.batchIterate 64 0.5 8192 0.25 avgt 5 244.211 10.352 ms/op 0.133403
BatchIteratorBenchmark.batchIterate 64 0.5 8192 0.5 avgt 5 241.198 7.795 ms/op 0.40209
BatchIteratorBenchmark.batchIterate 64 0.5 16384 0.1 avgt 5 476.608 15.191 ms/op 0.128774
BatchIteratorBenchmark.batchIterate 64 0.5 16384 0.25 avgt 5 491.693 20.037 ms/op 0.135742
BatchIteratorBenchmark.batchIterate 64 0.5 16384 0.5 avgt 5 472.299 26.578 ms/op 0.393246
BatchIteratorBenchmark.batchIterate 128 0.1 8 0.1 avgt 5 0.025 0.001 ms/op 0.568182
BatchIteratorBenchmark.batchIterate 128 0.1 8 0.25 avgt 5 0.231 0.005 ms/op 0.522624
BatchIteratorBenchmark.batchIterate 128 0.1 8 0.5 avgt 5 0.359 0.016 ms/op 0.39581
BatchIteratorBenchmark.batchIterate 128 0.1 64 0.1 avgt 5 0.61 0.032 ms/op 0.455224
BatchIteratorBenchmark.batchIterate 128 0.1 64 0.25 avgt 5 1.114 0.026 ms/op 0.447929
BatchIteratorBenchmark.batchIterate 128 0.1 64 0.5 avgt 5 1.903 0.122 ms/op 0.44225
BatchIteratorBenchmark.batchIterate 128 0.1 128 0.1 avgt 5 1.607 0.071 ms/op 0.872421
BatchIteratorBenchmark.batchIterate 128 0.1 128 0.25 avgt 5 2.089 0.082 ms/op 0.455021
BatchIteratorBenchmark.batchIterate 128 0.1 128 0.5 avgt 5 3.082 0.023 ms/op 0.355807
BatchIteratorBenchmark.batchIterate 128 0.1 256 0.1 avgt 5 2.859 0.135 ms/op 0.427418
BatchIteratorBenchmark.batchIterate 128 0.1 256 0.25 avgt 5 3.802 0.109 ms/op 0.337087
BatchIteratorBenchmark.batchIterate 128 0.1 256 0.5 avgt 5 7.748 0.136 ms/op 0.419809
BatchIteratorBenchmark.batchIterate 128 0.1 512 0.1 avgt 5 4.67 0.106 ms/op 0.43121
BatchIteratorBenchmark.batchIterate 128 0.1 512 0.25 avgt 5 8.014 0.321 ms/op 0.344792
BatchIteratorBenchmark.batchIterate 128 0.1 512 0.5 avgt 5 13.272 0.555 ms/op 0.367442
BatchIteratorBenchmark.batchIterate 128 0.1 1024 0.1 avgt 5 8.66 0.454 ms/op 0.414255
BatchIteratorBenchmark.batchIterate 128 0.1 1024 0.25 avgt 5 15.937 0.968 ms/op 0.380331
BatchIteratorBenchmark.batchIterate 128 0.1 1024 0.5 avgt 5 29.833 1.523 ms/op 0.417771
BatchIteratorBenchmark.batchIterate 128 0.1 2096 0.1 avgt 5 19.657 0.935 ms/op 0.420291
BatchIteratorBenchmark.batchIterate 128 0.1 2096 0.25 avgt 5 32.277 1.385 ms/op 0.365157
BatchIteratorBenchmark.batchIterate 128 0.1 2096 0.5 avgt 5 58.624 2.191 ms/op 0.386251
BatchIteratorBenchmark.batchIterate 128 0.1 4096 0.1 avgt 5 38.848 1.291 ms/op 0.429525
BatchIteratorBenchmark.batchIterate 128 0.1 4096 0.25 avgt 5 63.076 2.584 ms/op 0.394509
BatchIteratorBenchmark.batchIterate 128 0.1 4096 0.5 avgt 5 118.555 1.131 ms/op 0.399579
BatchIteratorBenchmark.batchIterate 128 0.1 8192 0.1 avgt 5 74.517 3.387 ms/op 0.412277
BatchIteratorBenchmark.batchIterate 128 0.1 8192 0.25 avgt 5 118.283 4.132 ms/op 0.348466
BatchIteratorBenchmark.batchIterate 128 0.1 8192 0.5 avgt 5 232.554 4.969 ms/op 0.38126
BatchIteratorBenchmark.batchIterate 128 0.1 16384 0.1 avgt 5 131.654 4.11 ms/op 0.360435
BatchIteratorBenchmark.batchIterate 128 0.1 16384 0.25 avgt 5 276.838 10.67 ms/op 0.417202
BatchIteratorBenchmark.batchIterate 128 0.1 16384 0.5 avgt 5 462.903 27.099 ms/op 0.395186
BatchIteratorBenchmark.batchIterate 128 0.25 8 0.1 avgt 5 0.167 0.007 ms/op 2.693548
BatchIteratorBenchmark.batchIterate 128 0.25 8 0.25 avgt 5 0.068 0.003 ms/op 0.336634
BatchIteratorBenchmark.batchIterate 128 0.25 8 0.5 avgt 5 0.108 0.006 ms/op 0.330275
BatchIteratorBenchmark.batchIterate 128 0.25 64 0.1 avgt 5 1.233 0.035 ms/op 0.166016
BatchIteratorBenchmark.batchIterate 128 0.25 64 0.25 avgt 5 1.108 0.022 ms/op 0.390004
BatchIteratorBenchmark.batchIterate 128 0.25 64 0.5 avgt 5 1.843 0.099 ms/op 0.355448
BatchIteratorBenchmark.batchIterate 128 0.25 128 0.1 avgt 5 2.01 0.059 ms/op 0.12207
BatchIteratorBenchmark.batchIterate 128 0.25 128 0.25 avgt 5 2.311 0.043 ms/op 0.474149
BatchIteratorBenchmark.batchIterate 128 0.25 128 0.5 avgt 5 3.812 0.221 ms/op 0.439221
BatchIteratorBenchmark.batchIterate 128 0.25 256 0.1 avgt 5 3.386 0.134 ms/op 0.098815
BatchIteratorBenchmark.batchIterate 128 0.25 256 0.25 avgt 5 3.846 0.206 ms/op 0.370092
BatchIteratorBenchmark.batchIterate 128 0.25 256 0.5 avgt 5 7.127 0.231 ms/op 0.391078
BatchIteratorBenchmark.batchIterate 128 0.25 512 0.1 avgt 5 7.981 0.424 ms/op 0.115289
BatchIteratorBenchmark.batchIterate 128 0.25 512 0.25 avgt 5 8.416 0.26 ms/op 0.385401
BatchIteratorBenchmark.batchIterate 128 0.25 512 0.5 avgt 5 14.535 0.277 ms/op 0.397381
BatchIteratorBenchmark.batchIterate 128 0.25 1024 0.1 avgt 5 16.905 0.607 ms/op 0.140493
BatchIteratorBenchmark.batchIterate 128 0.25 1024 0.25 avgt 5 17.155 0.406 ms/op 0.427571
BatchIteratorBenchmark.batchIterate 128 0.25 1024 0.5 avgt 5 27.355 0.749 ms/op 0.361542
BatchIteratorBenchmark.batchIterate 128 0.25 2096 0.1 avgt 5 34.793 1.656 ms/op 0.13514
BatchIteratorBenchmark.batchIterate 128 0.25 2096 0.25 avgt 5 32.112 0.827 ms/op 0.363291
BatchIteratorBenchmark.batchIterate 128 0.25 2096 0.5 avgt 5 59.473 1.619 ms/op 0.401124
BatchIteratorBenchmark.batchIterate 128 0.25 4096 0.1 avgt 5 61.531 0.975 ms/op 0.119031
BatchIteratorBenchmark.batchIterate 128 0.25 4096 0.25 avgt 5 64.289 1.005 ms/op 0.392226
BatchIteratorBenchmark.batchIterate 128 0.25 4096 0.5 avgt 5 117.34 3.83 ms/op 0.527997
BatchIteratorBenchmark.batchIterate 128 0.25 8192 0.1 avgt 5 126.878 5.296 ms/op 0.126187
BatchIteratorBenchmark.batchIterate 128 0.25 8192 0.25 avgt 5 137.905 9.029 ms/op 0.409272
BatchIteratorBenchmark.batchIterate 128 0.25 8192 0.5 avgt 5 230.175 6.588 ms/op 0.36924
BatchIteratorBenchmark.batchIterate 128 0.25 16384 0.1 avgt 5 256.408 8.712 ms/op 0.125066
BatchIteratorBenchmark.batchIterate 128 0.25 16384 0.25 avgt 5 250.186 14.578 ms/op 0.371223
BatchIteratorBenchmark.batchIterate 128 0.25 16384 0.5 avgt 5 462.458 29.28 ms/op 0.3909
BatchIteratorBenchmark.batchIterate 128 0.5 8 0.1 avgt 5 0.101 0.004 ms/op 0.042562
BatchIteratorBenchmark.batchIterate 128 0.5 8 0.25 avgt 5 0.145 0.017 ms/op 0.070048
BatchIteratorBenchmark.batchIterate 128 0.5 8 0.5 avgt 5 0.249 0.012 ms/op 0.3397
BatchIteratorBenchmark.batchIterate 128 0.5 64 0.1 avgt 5 2.031 0.093 ms/op 0.126432
BatchIteratorBenchmark.batchIterate 128 0.5 64 0.25 avgt 5 2.042 0.044 ms/op 0.132546
BatchIteratorBenchmark.batchIterate 128 0.5 64 0.5 avgt 5 1.378 0.018 ms/op 0.265818
BatchIteratorBenchmark.batchIterate 128 0.5 128 0.1 avgt 5 3.583 0.069 ms/op 0.116169
BatchIteratorBenchmark.batchIterate 128 0.5 128 0.25 avgt 5 3.364 0.044 ms/op 0.125312
BatchIteratorBenchmark.batchIterate 128 0.5 128 0.5 avgt 5 3.493 0.04 ms/op 0.348638
BatchIteratorBenchmark.batchIterate 128 0.5 256 0.1 avgt 5 7.034 0.589 ms/op 0.122826
BatchIteratorBenchmark.batchIterate 128 0.5 256 0.25 avgt 5 7.16 0.472 ms/op 0.126654
BatchIteratorBenchmark.batchIterate 128 0.5 256 0.5 avgt 5 6.985 0.352 ms/op 0.379166
BatchIteratorBenchmark.batchIterate 128 0.5 512 0.1 avgt 5 13.124 0.801 ms/op 0.1032
BatchIteratorBenchmark.batchIterate 128 0.5 512 0.25 avgt 5 12.531 0.551 ms/op 0.105311
BatchIteratorBenchmark.batchIterate 128 0.5 512 0.5 avgt 5 14.139 0.977 ms/op 0.38684
BatchIteratorBenchmark.batchIterate 128 0.5 1024 0.1 avgt 5 29.561 0.807 ms/op 0.12147
BatchIteratorBenchmark.batchIterate 128 0.5 1024 0.25 avgt 5 28.835 1.866 ms/op 0.125778
BatchIteratorBenchmark.batchIterate 128 0.5 1024 0.5 avgt 5 27.334 0.734 ms/op 0.353194
BatchIteratorBenchmark.batchIterate 128 0.5 2096 0.1 avgt 5 57.275 2.992 ms/op 0.12277
BatchIteratorBenchmark.batchIterate 128 0.5 2096 0.25 avgt 5 57.177 2.123 ms/op 0.127764
BatchIteratorBenchmark.batchIterate 128 0.5 2096 0.5 avgt 5 56.921 1.047 ms/op 0.372817
BatchIteratorBenchmark.batchIterate 128 0.5 4096 0.1 avgt 5 109.889 3.194 ms/op 0.116678
BatchIteratorBenchmark.batchIterate 128 0.5 4096 0.25 avgt 5 111.619 7.351 ms/op 0.120349
BatchIteratorBenchmark.batchIterate 128 0.5 4096 0.5 avgt 5 113.863 3.258 ms/op 0.37585
BatchIteratorBenchmark.batchIterate 128 0.5 8192 0.1 avgt 5 220.184 13.729 ms/op 0.11884
BatchIteratorBenchmark.batchIterate 128 0.5 8192 0.25 avgt 5 227.262 10.25 ms/op 0.126629
BatchIteratorBenchmark.batchIterate 128 0.5 8192 0.5 avgt 5 219.331 12.805 ms/op 0.366251
BatchIteratorBenchmark.batchIterate 128 0.5 16384 0.1 avgt 5 455.122 15.35 ms/op 0.122625
BatchIteratorBenchmark.batchIterate 128 0.5 16384 0.25 avgt 5 446.822 6.249 ms/op 0.123535
BatchIteratorBenchmark.batchIterate 128 0.5 16384 0.5 avgt 5 457.054 7.772 ms/op 0.364609
BatchIteratorBenchmark.batchIterate 256 0.1 8 0.1 avgt 5 0.07 0.033 ms/op 0.358974
BatchIteratorBenchmark.batchIterate 256 0.1 8 0.25 avgt 5 0.13 0.006 ms/op 1.857143
BatchIteratorBenchmark.batchIterate 256 0.1 8 0.5 avgt 5 0.26 0.01 ms/op 0.490566
BatchIteratorBenchmark.batchIterate 256 0.1 64 0.1 avgt 5 0.726 0.032 ms/op 0.5808
BatchIteratorBenchmark.batchIterate 256 0.1 64 0.25 avgt 5 1.084 0.021 ms/op 0.342064
BatchIteratorBenchmark.batchIterate 256 0.1 64 0.5 avgt 5 1.689 0.062 ms/op 0.34025
BatchIteratorBenchmark.batchIterate 256 0.1 128 0.1 avgt 5 1.063 0.029 ms/op 0.380731
BatchIteratorBenchmark.batchIterate 256 0.1 128 0.25 avgt 5 2.342 0.182 ms/op 0.383683
BatchIteratorBenchmark.batchIterate 256 0.1 128 0.5 avgt 5 2.585 0.153 ms/op 0.260087
BatchIteratorBenchmark.batchIterate 256 0.1 256 0.1 avgt 5 1.778 0.107 ms/op 0.286312
BatchIteratorBenchmark.batchIterate 256 0.1 256 0.25 avgt 5 4.051 0.338 ms/op 0.403165
BatchIteratorBenchmark.batchIterate 256 0.1 256 0.5 avgt 5 7.394 0.324 ms/op 0.404287
BatchIteratorBenchmark.batchIterate 256 0.1 512 0.1 avgt 5 3.403 0.112 ms/op 0.344468
BatchIteratorBenchmark.batchIterate 256 0.1 512 0.25 avgt 5 7.685 0.181 ms/op 0.391892
BatchIteratorBenchmark.batchIterate 256 0.1 512 0.5 avgt 5 13.459 0.787 ms/op 0.354716
BatchIteratorBenchmark.batchIterate 256 0.1 1024 0.1 avgt 5 8.719 0.556 ms/op 0.380145
BatchIteratorBenchmark.batchIterate 256 0.1 1024 0.25 avgt 5 16.566 0.895 ms/op 0.399287
BatchIteratorBenchmark.batchIterate 256 0.1 1024 0.5 avgt 5 26.059 1.35 ms/op 0.351996
BatchIteratorBenchmark.batchIterate 256 0.1 2096 0.1 avgt 5 15.609 0.844 ms/op 0.330741
BatchIteratorBenchmark.batchIterate 256 0.1 2096 0.25 avgt 5 29.25 1.339 ms/op 0.353603
BatchIteratorBenchmark.batchIterate 256 0.1 2096 0.5 avgt 5 51.874 1.1 ms/op 0.336717
BatchIteratorBenchmark.batchIterate 256 0.1 4096 0.1 avgt 5 33.83 1.157 ms/op 0.399216
BatchIteratorBenchmark.batchIterate 256 0.1 4096 0.25 avgt 5 61.442 1.257 ms/op 0.37704
BatchIteratorBenchmark.batchIterate 256 0.1 4096 0.5 avgt 5 108.65 1.918 ms/op 0.365447
BatchIteratorBenchmark.batchIterate 256 0.1 8192 0.1 avgt 5 66.977 0.544 ms/op 0.372359
BatchIteratorBenchmark.batchIterate 256 0.1 8192 0.25 avgt 5 119.199 8.449 ms/op 0.36245
BatchIteratorBenchmark.batchIterate 256 0.1 8192 0.5 avgt 5 220.192 5.854 ms/op 0.35331
BatchIteratorBenchmark.batchIterate 256 0.1 16384 0.1 avgt 5 141.874 26.816 ms/op 0.38992
BatchIteratorBenchmark.batchIterate 256 0.1 16384 0.25 avgt 5 247.107 7.162 ms/op 0.361933
BatchIteratorBenchmark.batchIterate 256 0.1 16384 0.5 avgt 5 436.489 13.923 ms/op 0.363033
BatchIteratorBenchmark.batchIterate 256 0.25 8 0.1 avgt 5 0.077 0.004 ms/op 0.055316
BatchIteratorBenchmark.batchIterate 256 0.25 8 0.25 avgt 5 0.078 0.042 ms/op 0.170678
BatchIteratorBenchmark.batchIterate 256 0.25 8 0.5 avgt 5 0.096 0.001 ms/op 0.118519
BatchIteratorBenchmark.batchIterate 256 0.25 64 0.1 avgt 5 1.001 0.098 ms/op 0.125991
BatchIteratorBenchmark.batchIterate 256 0.25 64 0.25 avgt 5 1.047 0.021 ms/op 0.3722
BatchIteratorBenchmark.batchIterate 256 0.25 64 0.5 avgt 5 1.98 0.043 ms/op 0.353508
BatchIteratorBenchmark.batchIterate 256 0.25 128 0.1 avgt 5 1.778 0.133 ms/op 0.1108
BatchIteratorBenchmark.batchIterate 256 0.25 128 0.25 avgt 5 1.746 0.086 ms/op 0.334547
BatchIteratorBenchmark.batchIterate 256 0.25 128 0.5 avgt 5 3.365 0.267 ms/op 0.37418
BatchIteratorBenchmark.batchIterate 256 0.25 256 0.1 avgt 5 3.336 0.11 ms/op 0.112236
BatchIteratorBenchmark.batchIterate 256 0.25 256 0.25 avgt 5 4.387 0.097 ms/op 0.405004
BatchIteratorBenchmark.batchIterate 256 0.25 256 0.5 avgt 5 7.366 0.127 ms/op 0.378695
BatchIteratorBenchmark.batchIterate 256 0.25 512 0.1 avgt 5 7.484 0.29 ms/op 0.121202
BatchIteratorBenchmark.batchIterate 256 0.25 512 0.25 avgt 5 7.463 0.129 ms/op 0.351912
BatchIteratorBenchmark.batchIterate 256 0.25 512 0.5 avgt 5 14.586 1.153 ms/op 0.408297
BatchIteratorBenchmark.batchIterate 256 0.25 1024 0.1 avgt 5 15.421 0.253 ms/op 0.123774
BatchIteratorBenchmark.batchIterate 256 0.25 1024 0.25 avgt 5 16.014 0.682 ms/op 0.375642
BatchIteratorBenchmark.batchIterate 256 0.25 1024 0.5 avgt 5 25.914 0.898 ms/op 0.348082
BatchIteratorBenchmark.batchIterate 256 0.25 2096 0.1 avgt 5 30.73 1.626 ms/op 0.111744
BatchIteratorBenchmark.batchIterate 256 0.25 2096 0.25 avgt 5 30.335 1.389 ms/op 0.351673
BatchIteratorBenchmark.batchIterate 256 0.25 2096 0.5 avgt 5 52.978 0.99 ms/op 0.364265
BatchIteratorBenchmark.batchIterate 256 0.25 4096 0.1 avgt 5 62.972 1.923 ms/op 0.127877
BatchIteratorBenchmark.batchIterate 256 0.25 4096 0.25 avgt 5 63.636 3.126 ms/op 0.395166
BatchIteratorBenchmark.batchIterate 256 0.25 4096 0.5 avgt 5 111.161 1.428 ms/op 0.376927
BatchIteratorBenchmark.batchIterate 256 0.25 8192 0.1 avgt 5 123.489 4.469 ms/op 0.122352
BatchIteratorBenchmark.batchIterate 256 0.25 8192 0.25 avgt 5 129.641 13.198 ms/op 0.399911
BatchIteratorBenchmark.batchIterate 256 0.25 8192 0.5 avgt 5 218.642 7.064 ms/op 0.382764
BatchIteratorBenchmark.batchIterate 256 0.25 16384 0.1 avgt 5 241.877 12.114 ms/op 0.12011
BatchIteratorBenchmark.batchIterate 256 0.25 16384 0.25 avgt 5 246.246 7.932 ms/op 0.357638
BatchIteratorBenchmark.batchIterate 256 0.25 16384 0.5 avgt 5 438.958 15.901 ms/op 0.372437
BatchIteratorBenchmark.batchIterate 256 0.5 8 0.1 avgt 5 0.227 0.013 ms/op 0.375828
BatchIteratorBenchmark.batchIterate 256 0.5 8 0.25 avgt 5 0.223 0.012 ms/op 0.496659
BatchIteratorBenchmark.batchIterate 256 0.5 8 0.5 avgt 5 0.29 0.009 ms/op 0.401107
BatchIteratorBenchmark.batchIterate 256 0.5 64 0.1 avgt 5 1.343 0.044 ms/op 0.086261
BatchIteratorBenchmark.batchIterate 256 0.5 64 0.25 avgt 5 1.848 0.062 ms/op 0.162705
BatchIteratorBenchmark.batchIterate 256 0.5 64 0.5 avgt 5 1.871 0.131 ms/op 0.395477
BatchIteratorBenchmark.batchIterate 256 0.5 128 0.1 avgt 5 3.148 0.136 ms/op 0.092469
BatchIteratorBenchmark.batchIterate 256 0.5 128 0.25 avgt 5 2.938 0.15 ms/op 0.10745
BatchIteratorBenchmark.batchIterate 256 0.5 128 0.5 avgt 5 3.111 0.166 ms/op 0.334732
BatchIteratorBenchmark.batchIterate 256 0.5 256 0.1 avgt 5 5.944 0.181 ms/op 0.100853
BatchIteratorBenchmark.batchIterate 256 0.5 256 0.25 avgt 5 6.299 0.13 ms/op 0.118296
BatchIteratorBenchmark.batchIterate 256 0.5 256 0.5 avgt 5 7.193 0.334 ms/op 0.387408
BatchIteratorBenchmark.batchIterate 256 0.5 512 0.1 avgt 5 13.323 0.618 ms/op 0.112213
BatchIteratorBenchmark.batchIterate 256 0.5 512 0.25 avgt 5 13.741 0.216 ms/op 0.127523
BatchIteratorBenchmark.batchIterate 256 0.5 512 0.5 avgt 5 14.599 1.138 ms/op 0.386064
BatchIteratorBenchmark.batchIterate 256 0.5 1024 0.1 avgt 5 25.709 1.633 ms/op 0.106787
BatchIteratorBenchmark.batchIterate 256 0.5 1024 0.25 avgt 5 27.816 3.264 ms/op 0.114961
BatchIteratorBenchmark.batchIterate 256 0.5 1024 0.5 avgt 5 25.211 0.895 ms/op 0.329409
BatchIteratorBenchmark.batchIterate 256 0.5 2096 0.1 avgt 5 54.568 2.209 ms/op 0.114279
BatchIteratorBenchmark.batchIterate 256 0.5 2096 0.25 avgt 5 54.072 1.826 ms/op 0.114857
BatchIteratorBenchmark.batchIterate 256 0.5 2096 0.5 avgt 5 51.084 1.283 ms/op 0.330988
BatchIteratorBenchmark.batchIterate 256 0.5 4096 0.1 avgt 5 107.258 4.523 ms/op 0.117093
BatchIteratorBenchmark.batchIterate 256 0.5 4096 0.25 avgt 5 103.501 3.14 ms/op 0.111918
BatchIteratorBenchmark.batchIterate 256 0.5 4096 0.5 avgt 5 110.882 2.321 ms/op 0.378319
BatchIteratorBenchmark.batchIterate 256 0.5 8192 0.1 avgt 5 216.02 10.335 ms/op 0.115067
BatchIteratorBenchmark.batchIterate 256 0.5 8192 0.25 avgt 5 215.019 7.149 ms/op 0.119259
BatchIteratorBenchmark.batchIterate 256 0.5 8192 0.5 avgt 5 216.897 11.634 ms/op 0.372556
BatchIteratorBenchmark.batchIterate 256 0.5 16384 0.1 avgt 5 424.237 14.56 ms/op 0.116603
BatchIteratorBenchmark.batchIterate 256 0.5 16384 0.25 avgt 5 424.673 19.615 ms/op 0.116421
BatchIteratorBenchmark.batchIterate 256 0.5 16384 0.5 avgt 5 425.778 16.333 ms/op 0.3621
BatchIteratorBenchmark.batchIterate 512 0.1 8 0.1 avgt 5 0.031 0.001 ms/op 0.146226
BatchIteratorBenchmark.batchIterate 512 0.1 8 0.25 avgt 5 0.121 0.005 ms/op 0.57619
BatchIteratorBenchmark.batchIterate 512 0.1 8 0.5 avgt 5 0.111 0.002 ms/op 0.180782
BatchIteratorBenchmark.batchIterate 512 0.1 64 0.1 avgt 5 0.526 0.019 ms/op 0.483456
BatchIteratorBenchmark.batchIterate 512 0.1 64 0.25 avgt 5 0.863 0.031 ms/op 0.890609
BatchIteratorBenchmark.batchIterate 512 0.1 64 0.5 avgt 5 1.416 0.053 ms/op 0.309103
BatchIteratorBenchmark.batchIterate 512 0.1 128 0.1 avgt 5 1.26 0.098 ms/op 0.599714
BatchIteratorBenchmark.batchIterate 512 0.1 128 0.25 avgt 5 1.841 0.062 ms/op 0.313682
BatchIteratorBenchmark.batchIterate 512 0.1 128 0.5 avgt 5 3.144 0.132 ms/op 0.436909
BatchIteratorBenchmark.batchIterate 512 0.1 256 0.1 avgt 5 2.097 0.077 ms/op 0.332014
BatchIteratorBenchmark.batchIterate 512 0.1 256 0.25 avgt 5 3.39 0.122 ms/op 0.283397
BatchIteratorBenchmark.batchIterate 512 0.1 256 0.5 avgt 5 7.022 0.237 ms/op 0.396164
BatchIteratorBenchmark.batchIterate 512 0.1 512 0.1 avgt 5 4.179 1.47 ms/op 0.400057
BatchIteratorBenchmark.batchIterate 512 0.1 512 0.25 avgt 5 8.076 1.423 ms/op 0.372423
BatchIteratorBenchmark.batchIterate 512 0.1 512 0.5 avgt 5 14.092 0.607 ms/op 0.365931
BatchIteratorBenchmark.batchIterate 512 0.1 1024 0.1 avgt 5 7.541 0.565 ms/op 0.318159
BatchIteratorBenchmark.batchIterate 512 0.1 1024 0.25 avgt 5 16.769 0.957 ms/op 0.404384
BatchIteratorBenchmark.batchIterate 512 0.1 1024 0.5 avgt 5 27.941 0.816 ms/op 0.36749
BatchIteratorBenchmark.batchIterate 512 0.1 2096 0.1 avgt 5 15.823 0.699 ms/op 0.347659
BatchIteratorBenchmark.batchIterate 512 0.1 2096 0.25 avgt 5 35.223 1.593 ms/op 0.414101
BatchIteratorBenchmark.batchIterate 512 0.1 2096 0.5 avgt 5 51.921 2.282 ms/op 0.333972
BatchIteratorBenchmark.batchIterate 512 0.1 4096 0.1 avgt 5 33.015 0.993 ms/op 0.350873
BatchIteratorBenchmark.batchIterate 512 0.1 4096 0.25 avgt 5 59.997 2.584 ms/op 0.360364
BatchIteratorBenchmark.batchIterate 512 0.1 4096 0.5 avgt 5 97.313 2.925 ms/op 0.339396
BatchIteratorBenchmark.batchIterate 512 0.1 8192 0.1 avgt 5 76.051 2.282 ms/op 0.432179
BatchIteratorBenchmark.batchIterate 512 0.1 8192 0.25 avgt 5 126.18 4.288 ms/op 0.382515
BatchIteratorBenchmark.batchIterate 512 0.1 8192 0.5 avgt 5 212.519 7.089 ms/op 0.354053
BatchIteratorBenchmark.batchIterate 512 0.1 16384 0.1 avgt 5 146.238 4.916 ms/op 0.408381
BatchIteratorBenchmark.batchIterate 512 0.1 16384 0.25 avgt 5 246.999 9.826 ms/op 0.37782
BatchIteratorBenchmark.batchIterate 512 0.1 16384 0.5 avgt 5 432.681 12.311 ms/op 0.362306
BatchIteratorBenchmark.batchIterate 512 0.25 8 0.1 avgt 5 0.084 0.036 ms/op 0.442105
BatchIteratorBenchmark.batchIterate 512 0.25 8 0.25 avgt 5 0.026 0.002 ms/op 0.110169
BatchIteratorBenchmark.batchIterate 512 0.25 8 0.5 avgt 5 0.167 0.003 ms/op 0.517028
BatchIteratorBenchmark.batchIterate 512 0.25 64 0.1 avgt 5 1.334 0.016 ms/op 0.142582
BatchIteratorBenchmark.batchIterate 512 0.25 64 0.25 avgt 5 1.051 0.019 ms/op 0.421919
BatchIteratorBenchmark.batchIterate 512 0.25 64 0.5 avgt 5 1.733 0.088 ms/op 0.393595
BatchIteratorBenchmark.batchIterate 512 0.25 128 0.1 avgt 5 1.989 0.1 ms/op 0.128871
BatchIteratorBenchmark.batchIterate 512 0.25 128 0.25 avgt 5 2.147 0.096 ms/op 0.468675
BatchIteratorBenchmark.batchIterate 512 0.25 128 0.5 avgt 5 2.757 0.11 ms/op 0.295879
BatchIteratorBenchmark.batchIterate 512 0.25 256 0.1 avgt 5 3.725 0.143 ms/op 0.125857
BatchIteratorBenchmark.batchIterate 512 0.25 256 0.25 avgt 5 3.221 0.059 ms/op 0.302016
BatchIteratorBenchmark.batchIterate 512 0.25 256 0.5 avgt 5 5.554 0.147 ms/op 0.286525
BatchIteratorBenchmark.batchIterate 512 0.25 512 0.1 avgt 5 7.327 0.287 ms/op 0.109654
BatchIteratorBenchmark.batchIterate 512 0.25 512 0.25 avgt 5 7.104 0.149 ms/op 0.339125
BatchIteratorBenchmark.batchIterate 512 0.25 512 0.5 avgt 5 12.843 0.707 ms/op 0.361317
BatchIteratorBenchmark.batchIterate 512 0.25 1024 0.1 avgt 5 14.933 0.597 ms/op 0.126768
BatchIteratorBenchmark.batchIterate 512 0.25 1024 0.25 avgt 5 16.202 0.43 ms/op 0.380919
BatchIteratorBenchmark.batchIterate 512 0.25 1024 0.5 avgt 5 27.951 0.692 ms/op 0.386394
BatchIteratorBenchmark.batchIterate 512 0.25 2096 0.1 avgt 5 29.866 1.61 ms/op 0.111702
BatchIteratorBenchmark.batchIterate 512 0.25 2096 0.25 avgt 5 33.714 2.668 ms/op 0.384437
BatchIteratorBenchmark.batchIterate 512 0.25 2096 0.5 avgt 5 59.165 0.909 ms/op 0.415205
BatchIteratorBenchmark.batchIterate 512 0.25 4096 0.1 avgt 5 57.433 0.497 ms/op 0.112042
BatchIteratorBenchmark.batchIterate 512 0.25 4096 0.25 avgt 5 60.498 1.597 ms/op 0.364569
BatchIteratorBenchmark.batchIterate 512 0.25 4096 0.5 avgt 5 96.9 2.483 ms/op 0.322127
BatchIteratorBenchmark.batchIterate 512 0.25 8192 0.1 avgt 5 119.083 2.665 ms/op 0.110557
BatchIteratorBenchmark.batchIterate 512 0.25 8192 0.25 avgt 5 128.075 4.08 ms/op 0.38642
BatchIteratorBenchmark.batchIterate 512 0.25 8192 0.5 avgt 5 211.427 11.38 ms/op 0.368847
BatchIteratorBenchmark.batchIterate 512 0.25 16384 0.1 avgt 5 231.948 10.473 ms/op 0.114322
BatchIteratorBenchmark.batchIterate 512 0.25 16384 0.25 avgt 5 249.37 14.08 ms/op 0.384141
BatchIteratorBenchmark.batchIterate 512 0.25 16384 0.5 avgt 5 428.048 15.808 ms/op 0.358165
BatchIteratorBenchmark.batchIterate 512 0.5 8 0.1 avgt 5 0.248 0.007 ms/op 1.00813
BatchIteratorBenchmark.batchIterate 512 0.5 8 0.25 avgt 5 0.202 0.012 ms/op 0.139986
BatchIteratorBenchmark.batchIterate 512 0.5 8 0.5 avgt 5 0.106 0.001 ms/op 0.177258
BatchIteratorBenchmark.batchIterate 512 0.5 64 0.1 avgt 5 1.959 0.713 ms/op 0.14038
BatchIteratorBenchmark.batchIterate 512 0.5 64 0.25 avgt 5 1.815 0.265 ms/op 0.128486
BatchIteratorBenchmark.batchIterate 512 0.5 64 0.5 avgt 5 2.116 0.06 ms/op 0.411353
BatchIteratorBenchmark.batchIterate 512 0.5 128 0.1 avgt 5 3.256 0.068 ms/op 0.109611
BatchIteratorBenchmark.batchIterate 512 0.5 128 0.25 avgt 5 2.937 0.068 ms/op 0.101199
BatchIteratorBenchmark.batchIterate 512 0.5 128 0.5 avgt 5 3.386 0.084 ms/op 0.335148
BatchIteratorBenchmark.batchIterate 512 0.5 256 0.1 avgt 5 6.618 0.278 ms/op 0.121427
BatchIteratorBenchmark.batchIterate 512 0.5 256 0.25 avgt 5 6.208 0.126 ms/op 0.121309
BatchIteratorBenchmark.batchIterate 512 0.5 256 0.5 avgt 5 7.316 0.442 ms/op 0.407032
BatchIteratorBenchmark.batchIterate 512 0.5 512 0.1 avgt 5 12.941 0.306 ms/op 0.103291
BatchIteratorBenchmark.batchIterate 512 0.5 512 0.25 avgt 5 13.555 0.331 ms/op 0.122736
BatchIteratorBenchmark.batchIterate 512 0.5 512 0.5 avgt 5 14.791 0.581 ms/op 0.409564
BatchIteratorBenchmark.batchIterate 512 0.5 1024 0.1 avgt 5 25.099 1.229 ms/op 0.114865
BatchIteratorBenchmark.batchIterate 512 0.5 1024 0.25 avgt 5 25.479 1.212 ms/op 0.106903
BatchIteratorBenchmark.batchIterate 512 0.5 1024 0.5 avgt 5 28.166 0.896 ms/op 0.369337
BatchIteratorBenchmark.batchIterate 512 0.5 2096 0.1 avgt 5 51.317 1.701 ms/op 0.10679
BatchIteratorBenchmark.batchIterate 512 0.5 2096 0.25 avgt 5 51.411 2.004 ms/op 0.10548
BatchIteratorBenchmark.batchIterate 512 0.5 2096 0.5 avgt 5 52.088 2.045 ms/op 0.355627
BatchIteratorBenchmark.batchIterate 512 0.5 4096 0.1 avgt 5 102.025 8.688 ms/op 0.107162
BatchIteratorBenchmark.batchIterate 512 0.5 4096 0.25 avgt 5 101.422 3.809 ms/op 0.111133
BatchIteratorBenchmark.batchIterate 512 0.5 4096 0.5 avgt 5 107.872 4.38 ms/op 0.358218
BatchIteratorBenchmark.batchIterate 512 0.5 8192 0.1 avgt 5 205.837 2.359 ms/op 0.113026
BatchIteratorBenchmark.batchIterate 512 0.5 8192 0.25 avgt 5 206.047 7.326 ms/op 0.113049
BatchIteratorBenchmark.batchIterate 512 0.5 8192 0.5 avgt 5 214.479 6.935 ms/op 0.359365
BatchIteratorBenchmark.batchIterate 512 0.5 16384 0.1 avgt 5 413.954 13.625 ms/op 0.11244
BatchIteratorBenchmark.batchIterate 512 0.5 16384 0.25 avgt 5 414.757 13.727 ms/op 0.115022
BatchIteratorBenchmark.batchIterate 512 0.5 16384 0.5 avgt 5 431.24 13.939 ms/op 0.363998
BatchIteratorBenchmark.iterate 64 0.1 8 0.1 avgt 5 0.312 0.042 ms/op  
BatchIteratorBenchmark.iterate 64 0.1 8 0.25 avgt 5 0.34 0.033 ms/op  
BatchIteratorBenchmark.iterate 64 0.1 8 0.5 avgt 5 0.482 0.008 ms/op  
BatchIteratorBenchmark.iterate 64 0.1 64 0.1 avgt 5 1.139 0.054 ms/op  
BatchIteratorBenchmark.iterate 64 0.1 64 0.25 avgt 5 2.985 0.227 ms/op  
BatchIteratorBenchmark.iterate 64 0.1 64 0.5 avgt 5 4.43 0.126 ms/op  
BatchIteratorBenchmark.iterate 64 0.1 128 0.1 avgt 5 3.455 0.066 ms/op  
BatchIteratorBenchmark.iterate 64 0.1 128 0.25 avgt 5 4.757 0.295 ms/op  
BatchIteratorBenchmark.iterate 64 0.1 128 0.5 avgt 5 9.161 0.223 ms/op  
BatchIteratorBenchmark.iterate 64 0.1 256 0.1 avgt 5 3.514 0.14 ms/op  
BatchIteratorBenchmark.iterate 64 0.1 256 0.25 avgt 5 11.467 0.635 ms/op  
BatchIteratorBenchmark.iterate 64 0.1 256 0.5 avgt 5 17.77 0.634 ms/op  
BatchIteratorBenchmark.iterate 64 0.1 512 0.1 avgt 5 10.449 0.561 ms/op  
BatchIteratorBenchmark.iterate 64 0.1 512 0.25 avgt 5 24.495 0.565 ms/op  
BatchIteratorBenchmark.iterate 64 0.1 512 0.5 avgt 5 35.863 1.639 ms/op  
BatchIteratorBenchmark.iterate 64 0.1 1024 0.1 avgt 5 21.935 0.34 ms/op  
BatchIteratorBenchmark.iterate 64 0.1 1024 0.25 avgt 5 41.271 1.456 ms/op  
BatchIteratorBenchmark.iterate 64 0.1 1024 0.5 avgt 5 76.914 2.396 ms/op  
BatchIteratorBenchmark.iterate 64 0.1 2096 0.1 avgt 5 44.357 1.747 ms/op  
BatchIteratorBenchmark.iterate 64 0.1 2096 0.25 avgt 5 87.045 3.435 ms/op  
BatchIteratorBenchmark.iterate 64 0.1 2096 0.5 avgt 5 158.833 3.991 ms/op  
BatchIteratorBenchmark.iterate 64 0.1 4096 0.1 avgt 5 85.486 3.591 ms/op  
BatchIteratorBenchmark.iterate 64 0.1 4096 0.25 avgt 5 171.732 8.711 ms/op  
BatchIteratorBenchmark.iterate 64 0.1 4096 0.5 avgt 5 290.194 5.397 ms/op  
BatchIteratorBenchmark.iterate 64 0.1 8192 0.1 avgt 5 183.88 3.719 ms/op  
BatchIteratorBenchmark.iterate 64 0.1 8192 0.25 avgt 5 326.683 20.797 ms/op  
BatchIteratorBenchmark.iterate 64 0.1 8192 0.5 avgt 5 600.312 25.644 ms/op  
BatchIteratorBenchmark.iterate 64 0.1 16384 0.1 avgt 5 366.544 6.396 ms/op  
BatchIteratorBenchmark.iterate 64 0.1 16384 0.25 avgt 5 666.766 50.123 ms/op  
BatchIteratorBenchmark.iterate 64 0.1 16384 0.5 avgt 5 1183.331 55.097 ms/op  
BatchIteratorBenchmark.iterate 64 0.25 8 0.1 avgt 5 2.182 0.183 ms/op  
BatchIteratorBenchmark.iterate 64 0.25 8 0.25 avgt 5 0.337 0.014 ms/op  
BatchIteratorBenchmark.iterate 64 0.25 8 0.5 avgt 5 0.688 0.009 ms/op  
BatchIteratorBenchmark.iterate 64 0.25 64 0.1 avgt 5 7.035 0.231 ms/op  
BatchIteratorBenchmark.iterate 64 0.25 64 0.25 avgt 5 2.933 0.078 ms/op  
BatchIteratorBenchmark.iterate 64 0.25 64 0.5 avgt 5 4.813 0.424 ms/op  
BatchIteratorBenchmark.iterate 64 0.25 128 0.1 avgt 5 13.336 0.573 ms/op  
BatchIteratorBenchmark.iterate 64 0.25 128 0.25 avgt 5 4.512 0.146 ms/op  
BatchIteratorBenchmark.iterate 64 0.25 128 0.5 avgt 5 9.743 0.597 ms/op  
BatchIteratorBenchmark.iterate 64 0.25 256 0.1 avgt 5 29.82 2.77 ms/op  
BatchIteratorBenchmark.iterate 64 0.25 256 0.25 avgt 5 11.176 0.393 ms/op  
BatchIteratorBenchmark.iterate 64 0.25 256 0.5 avgt 5 18.659 0.834 ms/op  
BatchIteratorBenchmark.iterate 64 0.25 512 0.1 avgt 5 59.859 1.256 ms/op  
BatchIteratorBenchmark.iterate 64 0.25 512 0.25 avgt 5 20.861 0.923 ms/op  
BatchIteratorBenchmark.iterate 64 0.25 512 0.5 avgt 5 37.567 1.27 ms/op  
BatchIteratorBenchmark.iterate 64 0.25 1024 0.1 avgt 5 134.23 5.676 ms/op  
BatchIteratorBenchmark.iterate 64 0.25 1024 0.25 avgt 5 42.424 1.272 ms/op  
BatchIteratorBenchmark.iterate 64 0.25 1024 0.5 avgt 5 76.248 2.042 ms/op  
BatchIteratorBenchmark.iterate 64 0.25 2096 0.1 avgt 5 245.195 4.595 ms/op  
BatchIteratorBenchmark.iterate 64 0.25 2096 0.25 avgt 5 90.908 7.183 ms/op  
BatchIteratorBenchmark.iterate 64 0.25 2096 0.5 avgt 5 153.582 3.942 ms/op  
BatchIteratorBenchmark.iterate 64 0.25 4096 0.1 avgt 5 480.393 11.906 ms/op  
BatchIteratorBenchmark.iterate 64 0.25 4096 0.25 avgt 5 167.589 3.956 ms/op  
BatchIteratorBenchmark.iterate 64 0.25 4096 0.5 avgt 5 292.883 16.433 ms/op  
BatchIteratorBenchmark.iterate 64 0.25 8192 0.1 avgt 5 984.245 50.04 ms/op  
BatchIteratorBenchmark.iterate 64 0.25 8192 0.25 avgt 5 336.999 42.824 ms/op  
BatchIteratorBenchmark.iterate 64 0.25 8192 0.5 avgt 5 604.677 16.429 ms/op  
BatchIteratorBenchmark.iterate 64 0.25 16384 0.1 avgt 5 2044.291 59.45 ms/op  
BatchIteratorBenchmark.iterate 64 0.25 16384 0.25 avgt 5 659.828 27.343 ms/op  
BatchIteratorBenchmark.iterate 64 0.25 16384 0.5 avgt 5 1169.812 64.697 ms/op  
BatchIteratorBenchmark.iterate 64 0.5 8 0.1 avgt 5 0.473 0.011 ms/op  
BatchIteratorBenchmark.iterate 64 0.5 8 0.25 avgt 5 0.973 0.036 ms/op  
BatchIteratorBenchmark.iterate 64 0.5 8 0.5 avgt 5 0.728 0.041 ms/op  
BatchIteratorBenchmark.iterate 64 0.5 64 0.1 avgt 5 11.976 0.63 ms/op  
BatchIteratorBenchmark.iterate 64 0.5 64 0.25 avgt 5 16.416 1.309 ms/op  
BatchIteratorBenchmark.iterate 64 0.5 64 0.5 avgt 5 4.327 0.237 ms/op  
BatchIteratorBenchmark.iterate 64 0.5 128 0.1 avgt 5 24.785 1.184 ms/op  
BatchIteratorBenchmark.iterate 64 0.5 128 0.25 avgt 5 25.249 2.234 ms/op  
BatchIteratorBenchmark.iterate 64 0.5 128 0.5 avgt 5 8.662 0.34 ms/op  
BatchIteratorBenchmark.iterate 64 0.5 256 0.1 avgt 5 55.265 3.702 ms/op  
BatchIteratorBenchmark.iterate 64 0.5 256 0.25 avgt 5 59.899 2.403 ms/op  
BatchIteratorBenchmark.iterate 64 0.5 256 0.5 avgt 5 19.8 0.55 ms/op  
BatchIteratorBenchmark.iterate 64 0.5 512 0.1 avgt 5 111.645 5.058 ms/op  
BatchIteratorBenchmark.iterate 64 0.5 512 0.25 avgt 5 124.194 7.154 ms/op  
BatchIteratorBenchmark.iterate 64 0.5 512 0.5 avgt 5 37.711 1.492 ms/op  
BatchIteratorBenchmark.iterate 64 0.5 1024 0.1 avgt 5 233.839 10.931 ms/op  
BatchIteratorBenchmark.iterate 64 0.5 1024 0.25 avgt 5 230.62 8.005 ms/op  
BatchIteratorBenchmark.iterate 64 0.5 1024 0.5 avgt 5 73.121 3.227 ms/op  
BatchIteratorBenchmark.iterate 64 0.5 2096 0.1 avgt 5 468.493 55.548 ms/op  
BatchIteratorBenchmark.iterate 64 0.5 2096 0.25 avgt 5 468.658 9.182 ms/op  
BatchIteratorBenchmark.iterate 64 0.5 2096 0.5 avgt 5 108.269 3.625 ms/op  
BatchIteratorBenchmark.iterate 64 0.5 4096 0.1 avgt 5 937.352 26.899 ms/op  
BatchIteratorBenchmark.iterate 64 0.5 4096 0.25 avgt 5 909.412 25.296 ms/op  
BatchIteratorBenchmark.iterate 64 0.5 4096 0.5 avgt 5 296.524 15.73 ms/op  
BatchIteratorBenchmark.iterate 64 0.5 8192 0.1 avgt 5 1840.722 35.834 ms/op  
BatchIteratorBenchmark.iterate 64 0.5 8192 0.25 avgt 5 1830.632 53.173 ms/op  
BatchIteratorBenchmark.iterate 64 0.5 8192 0.5 avgt 5 599.86 20.764 ms/op  
BatchIteratorBenchmark.iterate 64 0.5 16384 0.1 avgt 5 3701.117 51.441 ms/op  
BatchIteratorBenchmark.iterate 64 0.5 16384 0.25 avgt 5 3622.265 80.35 ms/op  
BatchIteratorBenchmark.iterate 64 0.5 16384 0.5 avgt 5 1201.027 38.082 ms/op  
BatchIteratorBenchmark.iterate 128 0.1 8 0.1 avgt 5 0.044 0.04 ms/op  
BatchIteratorBenchmark.iterate 128 0.1 8 0.25 avgt 5 0.442 0.013 ms/op  
BatchIteratorBenchmark.iterate 128 0.1 8 0.5 avgt 5 0.907 0.027 ms/op  
BatchIteratorBenchmark.iterate 128 0.1 64 0.1 avgt 5 1.34 0.034 ms/op  
BatchIteratorBenchmark.iterate 128 0.1 64 0.25 avgt 5 2.487 0.077 ms/op  
BatchIteratorBenchmark.iterate 128 0.1 64 0.5 avgt 5 4.303 0.097 ms/op  
BatchIteratorBenchmark.iterate 128 0.1 128 0.1 avgt 5 1.842 0.129 ms/op  
BatchIteratorBenchmark.iterate 128 0.1 128 0.25 avgt 5 4.591 0.158 ms/op  
BatchIteratorBenchmark.iterate 128 0.1 128 0.5 avgt 5 8.662 0.548 ms/op  
BatchIteratorBenchmark.iterate 128 0.1 256 0.1 avgt 5 6.689 0.449 ms/op  
BatchIteratorBenchmark.iterate 128 0.1 256 0.25 avgt 5 11.279 0.392 ms/op  
BatchIteratorBenchmark.iterate 128 0.1 256 0.5 avgt 5 18.456 0.545 ms/op  
BatchIteratorBenchmark.iterate 128 0.1 512 0.1 avgt 5 10.83 0.258 ms/op  
BatchIteratorBenchmark.iterate 128 0.1 512 0.25 avgt 5 23.243 1.275 ms/op  
BatchIteratorBenchmark.iterate 128 0.1 512 0.5 avgt 5 36.12 1.053 ms/op  
BatchIteratorBenchmark.iterate 128 0.1 1024 0.1 avgt 5 20.905 1.483 ms/op  
BatchIteratorBenchmark.iterate 128 0.1 1024 0.25 avgt 5 41.903 1.593 ms/op  
BatchIteratorBenchmark.iterate 128 0.1 1024 0.5 avgt 5 71.41 2.756 ms/op  
BatchIteratorBenchmark.iterate 128 0.1 2096 0.1 avgt 5 46.77 1.665 ms/op  
BatchIteratorBenchmark.iterate 128 0.1 2096 0.25 avgt 5 88.392 3.469 ms/op  
BatchIteratorBenchmark.iterate 128 0.1 2096 0.5 avgt 5 151.777 2.839 ms/op  
BatchIteratorBenchmark.iterate 128 0.1 4096 0.1 avgt 5 90.444 3.29 ms/op  
BatchIteratorBenchmark.iterate 128 0.1 4096 0.25 avgt 5 159.885 3.518 ms/op  
BatchIteratorBenchmark.iterate 128 0.1 4096 0.5 avgt 5 296.7 14.386 ms/op  
BatchIteratorBenchmark.iterate 128 0.1 8192 0.1 avgt 5 180.745 7.806 ms/op  
BatchIteratorBenchmark.iterate 128 0.1 8192 0.25 avgt 5 339.439 13.562 ms/op  
BatchIteratorBenchmark.iterate 128 0.1 8192 0.5 avgt 5 609.962 78.885 ms/op  
BatchIteratorBenchmark.iterate 128 0.1 16384 0.1 avgt 5 365.264 16.326 ms/op  
BatchIteratorBenchmark.iterate 128 0.1 16384 0.25 avgt 5 663.558 40.804 ms/op  
BatchIteratorBenchmark.iterate 128 0.1 16384 0.5 avgt 5 1171.356 21.165 ms/op  
BatchIteratorBenchmark.iterate 128 0.25 8 0.1 avgt 5 0.062 0.051 ms/op  
BatchIteratorBenchmark.iterate 128 0.25 8 0.25 avgt 5 0.202 0.013 ms/op  
BatchIteratorBenchmark.iterate 128 0.25 8 0.5 avgt 5 0.327 0.005 ms/op  
BatchIteratorBenchmark.iterate 128 0.25 64 0.1 avgt 5 7.427 0.342 ms/op  
BatchIteratorBenchmark.iterate 128 0.25 64 0.25 avgt 5 2.841 0.112 ms/op  
BatchIteratorBenchmark.iterate 128 0.25 64 0.5 avgt 5 5.185 0.245 ms/op  
BatchIteratorBenchmark.iterate 128 0.25 128 0.1 avgt 5 16.466 0.726 ms/op  
BatchIteratorBenchmark.iterate 128 0.25 128 0.25 avgt 5 4.874 0.146 ms/op  
BatchIteratorBenchmark.iterate 128 0.25 128 0.5 avgt 5 8.679 0.304 ms/op  
BatchIteratorBenchmark.iterate 128 0.25 256 0.1 avgt 5 34.266 1.373 ms/op  
BatchIteratorBenchmark.iterate 128 0.25 256 0.25 avgt 5 10.392 0.413 ms/op  
BatchIteratorBenchmark.iterate 128 0.25 256 0.5 avgt 5 18.224 0.231 ms/op  
BatchIteratorBenchmark.iterate 128 0.25 512 0.1 avgt 5 69.226 1.717 ms/op  
BatchIteratorBenchmark.iterate 128 0.25 512 0.25 avgt 5 21.837 0.827 ms/op  
BatchIteratorBenchmark.iterate 128 0.25 512 0.5 avgt 5 36.577 0.71 ms/op  
BatchIteratorBenchmark.iterate 128 0.25 1024 0.1 avgt 5 120.326 4.905 ms/op  
BatchIteratorBenchmark.iterate 128 0.25 1024 0.25 avgt 5 40.122 1.542 ms/op  
BatchIteratorBenchmark.iterate 128 0.25 1024 0.5 avgt 5 75.662 5.048 ms/op  
BatchIteratorBenchmark.iterate 128 0.25 2096 0.1 avgt 5 257.458 28.849 ms/op  
BatchIteratorBenchmark.iterate 128 0.25 2096 0.25 avgt 5 88.392 5.916 ms/op  
BatchIteratorBenchmark.iterate 128 0.25 2096 0.5 avgt 5 148.266 7.93 ms/op  
BatchIteratorBenchmark.iterate 128 0.25 4096 0.1 avgt 5 516.933 21.097 ms/op  
BatchIteratorBenchmark.iterate 128 0.25 4096 0.25 avgt 5 163.908 12.203 ms/op  
BatchIteratorBenchmark.iterate 128 0.25 4096 0.5 avgt 5 222.236 22.057 ms/op  
BatchIteratorBenchmark.iterate 128 0.25 8192 0.1 avgt 5 1005.473 19.211 ms/op  
BatchIteratorBenchmark.iterate 128 0.25 8192 0.25 avgt 5 336.952 33.234 ms/op  
BatchIteratorBenchmark.iterate 128 0.25 8192 0.5 avgt 5 623.375 20.508 ms/op  
BatchIteratorBenchmark.iterate 128 0.25 16384 0.1 avgt 5 2050.185 60.232 ms/op  
BatchIteratorBenchmark.iterate 128 0.25 16384 0.25 avgt 5 673.951 25.913 ms/op  
BatchIteratorBenchmark.iterate 128 0.25 16384 0.5 avgt 5 1183.06 27.51 ms/op  
BatchIteratorBenchmark.iterate 128 0.5 8 0.1 avgt 5 2.373 0.125 ms/op  
BatchIteratorBenchmark.iterate 128 0.5 8 0.25 avgt 5 2.07 0.074 ms/op  
BatchIteratorBenchmark.iterate 128 0.5 8 0.5 avgt 5 0.733 0.022 ms/op  
BatchIteratorBenchmark.iterate 128 0.5 64 0.1 avgt 5 16.064 0.868 ms/op  
BatchIteratorBenchmark.iterate 128 0.5 64 0.25 avgt 5 15.406 0.787 ms/op  
BatchIteratorBenchmark.iterate 128 0.5 64 0.5 avgt 5 5.184 0.315 ms/op  
BatchIteratorBenchmark.iterate 128 0.5 128 0.1 avgt 5 30.843 0.612 ms/op  
BatchIteratorBenchmark.iterate 128 0.5 128 0.25 avgt 5 26.845 1.186 ms/op  
BatchIteratorBenchmark.iterate 128 0.5 128 0.5 avgt 5 10.019 0.772 ms/op  
BatchIteratorBenchmark.iterate 128 0.5 256 0.1 avgt 5 57.268 1.653 ms/op  
BatchIteratorBenchmark.iterate 128 0.5 256 0.25 avgt 5 56.532 7.884 ms/op  
BatchIteratorBenchmark.iterate 128 0.5 256 0.5 avgt 5 18.422 0.849 ms/op  
BatchIteratorBenchmark.iterate 128 0.5 512 0.1 avgt 5 127.17 7.188 ms/op  
BatchIteratorBenchmark.iterate 128 0.5 512 0.25 avgt 5 118.99 7.535 ms/op  
BatchIteratorBenchmark.iterate 128 0.5 512 0.5 avgt 5 36.55 1.388 ms/op  
BatchIteratorBenchmark.iterate 128 0.5 1024 0.1 avgt 5 243.36 9.428 ms/op  
BatchIteratorBenchmark.iterate 128 0.5 1024 0.25 avgt 5 229.253 11.963 ms/op  
BatchIteratorBenchmark.iterate 128 0.5 1024 0.5 avgt 5 77.391 2.941 ms/op  
BatchIteratorBenchmark.iterate 128 0.5 2096 0.1 avgt 5 466.523 21.988 ms/op  
BatchIteratorBenchmark.iterate 128 0.5 2096 0.25 avgt 5 447.521 22.907 ms/op  
BatchIteratorBenchmark.iterate 128 0.5 2096 0.5 avgt 5 152.678 5.475 ms/op  
BatchIteratorBenchmark.iterate 128 0.5 4096 0.1 avgt 5 941.818 31.323 ms/op  
BatchIteratorBenchmark.iterate 128 0.5 4096 0.25 avgt 5 927.46 201.829 ms/op  
BatchIteratorBenchmark.iterate 128 0.5 4096 0.5 avgt 5 302.948 9.698 ms/op  
BatchIteratorBenchmark.iterate 128 0.5 8192 0.1 avgt 5 1852.784 46.872 ms/op  
BatchIteratorBenchmark.iterate 128 0.5 8192 0.25 avgt 5 1794.705 34.277 ms/op  
BatchIteratorBenchmark.iterate 128 0.5 8192 0.5 avgt 5 598.854 11.212 ms/op  
BatchIteratorBenchmark.iterate 128 0.5 16384 0.1 avgt 5 3711.508 305.953 ms/op  
BatchIteratorBenchmark.iterate 128 0.5 16384 0.25 avgt 5 3616.958 61.76 ms/op  
BatchIteratorBenchmark.iterate 128 0.5 16384 0.5 avgt 5 1253.545 54.596 ms/op  
BatchIteratorBenchmark.iterate 256 0.1 8 0.1 avgt 5 0.195 0.004 ms/op  
BatchIteratorBenchmark.iterate 256 0.1 8 0.25 avgt 5 0.07 0.042 ms/op  
BatchIteratorBenchmark.iterate 256 0.1 8 0.5 avgt 5 0.53 0.012 ms/op  
BatchIteratorBenchmark.iterate 256 0.1 64 0.1 avgt 5 1.25 0.039 ms/op  
BatchIteratorBenchmark.iterate 256 0.1 64 0.25 avgt 5 3.169 0.141 ms/op  
BatchIteratorBenchmark.iterate 256 0.1 64 0.5 avgt 5 4.964 0.131 ms/op  
BatchIteratorBenchmark.iterate 256 0.1 128 0.1 avgt 5 2.792 0.173 ms/op  
BatchIteratorBenchmark.iterate 256 0.1 128 0.25 avgt 5 6.104 0.221 ms/op  
BatchIteratorBenchmark.iterate 256 0.1 128 0.5 avgt 5 9.939 0.27 ms/op  
BatchIteratorBenchmark.iterate 256 0.1 256 0.1 avgt 5 6.21 0.228 ms/op  
BatchIteratorBenchmark.iterate 256 0.1 256 0.25 avgt 5 10.048 0.412 ms/op  
BatchIteratorBenchmark.iterate 256 0.1 256 0.5 avgt 5 18.289 1.018 ms/op  
BatchIteratorBenchmark.iterate 256 0.1 512 0.1 avgt 5 9.879 0.341 ms/op  
BatchIteratorBenchmark.iterate 256 0.1 512 0.25 avgt 5 19.61 1.221 ms/op  
BatchIteratorBenchmark.iterate 256 0.1 512 0.5 avgt 5 37.943 1.143 ms/op  
BatchIteratorBenchmark.iterate 256 0.1 1024 0.1 avgt 5 22.936 0.929 ms/op  
BatchIteratorBenchmark.iterate 256 0.1 1024 0.25 avgt 5 41.489 2.233 ms/op  
BatchIteratorBenchmark.iterate 256 0.1 1024 0.5 avgt 5 74.032 3.133 ms/op  
BatchIteratorBenchmark.iterate 256 0.1 2096 0.1 avgt 5 47.194 3.539 ms/op  
BatchIteratorBenchmark.iterate 256 0.1 2096 0.25 avgt 5 82.72 4.488 ms/op  
BatchIteratorBenchmark.iterate 256 0.1 2096 0.5 avgt 5 154.058 5.4 ms/op  
BatchIteratorBenchmark.iterate 256 0.1 4096 0.1 avgt 5 84.741 3.647 ms/op  
BatchIteratorBenchmark.iterate 256 0.1 4096 0.25 avgt 5 162.959 6.142 ms/op  
BatchIteratorBenchmark.iterate 256 0.1 4096 0.5 avgt 5 297.307 12.675 ms/op  
BatchIteratorBenchmark.iterate 256 0.1 8192 0.1 avgt 5 179.872 12.725 ms/op  
BatchIteratorBenchmark.iterate 256 0.1 8192 0.25 avgt 5 328.87 8.504 ms/op  
BatchIteratorBenchmark.iterate 256 0.1 8192 0.5 avgt 5 623.226 28.277 ms/op  
BatchIteratorBenchmark.iterate 256 0.1 16384 0.1 avgt 5 363.854 4.032 ms/op  
BatchIteratorBenchmark.iterate 256 0.1 16384 0.25 avgt 5 682.743 113.572 ms/op  
BatchIteratorBenchmark.iterate 256 0.1 16384 0.5 avgt 5 1202.34 48.506 ms/op  
BatchIteratorBenchmark.iterate 256 0.25 8 0.1 avgt 5 1.392 0.13 ms/op  
BatchIteratorBenchmark.iterate 256 0.25 8 0.25 avgt 5 0.457 0.014 ms/op  
BatchIteratorBenchmark.iterate 256 0.25 8 0.5 avgt 5 0.81 0.024 ms/op  
BatchIteratorBenchmark.iterate 256 0.25 64 0.1 avgt 5 7.945 0.425 ms/op  
BatchIteratorBenchmark.iterate 256 0.25 64 0.25 avgt 5 2.813 0.086 ms/op  
BatchIteratorBenchmark.iterate 256 0.25 64 0.5 avgt 5 5.601 0.224 ms/op  
BatchIteratorBenchmark.iterate 256 0.25 128 0.1 avgt 5 16.047 0.441 ms/op  
BatchIteratorBenchmark.iterate 256 0.25 128 0.25 avgt 5 5.219 0.193 ms/op  
BatchIteratorBenchmark.iterate 256 0.25 128 0.5 avgt 5 8.993 0.324 ms/op  
BatchIteratorBenchmark.iterate 256 0.25 256 0.1 avgt 5 29.723 1.849 ms/op  
BatchIteratorBenchmark.iterate 256 0.25 256 0.25 avgt 5 10.832 0.675 ms/op  
BatchIteratorBenchmark.iterate 256 0.25 256 0.5 avgt 5 19.451 1.268 ms/op  
BatchIteratorBenchmark.iterate 256 0.25 512 0.1 avgt 5 61.748 1.912 ms/op  
BatchIteratorBenchmark.iterate 256 0.25 512 0.25 avgt 5 21.207 1.044 ms/op  
BatchIteratorBenchmark.iterate 256 0.25 512 0.5 avgt 5 35.724 0.645 ms/op  
BatchIteratorBenchmark.iterate 256 0.25 1024 0.1 avgt 5 124.59 1.18 ms/op  
BatchIteratorBenchmark.iterate 256 0.25 1024 0.25 avgt 5 42.631 2.149 ms/op  
BatchIteratorBenchmark.iterate 256 0.25 1024 0.5 avgt 5 74.448 1.217 ms/op  
BatchIteratorBenchmark.iterate 256 0.25 2096 0.1 avgt 5 275.004 23.621 ms/op  
BatchIteratorBenchmark.iterate 256 0.25 2096 0.25 avgt 5 86.259 3.352 ms/op  
BatchIteratorBenchmark.iterate 256 0.25 2096 0.5 avgt 5 145.438 10.205 ms/op  
BatchIteratorBenchmark.iterate 256 0.25 4096 0.1 avgt 5 492.442 30.441 ms/op  
BatchIteratorBenchmark.iterate 256 0.25 4096 0.25 avgt 5 161.036 4.514 ms/op  
BatchIteratorBenchmark.iterate 256 0.25 4096 0.5 avgt 5 294.914 8.92 ms/op  
BatchIteratorBenchmark.iterate 256 0.25 8192 0.1 avgt 5 1009.289 32.518 ms/op  
BatchIteratorBenchmark.iterate 256 0.25 8192 0.25 avgt 5 324.175 20.357 ms/op  
BatchIteratorBenchmark.iterate 256 0.25 8192 0.5 avgt 5 571.219 24.295 ms/op  
BatchIteratorBenchmark.iterate 256 0.25 16384 0.1 avgt 5 2013.791 65.364 ms/op  
BatchIteratorBenchmark.iterate 256 0.25 16384 0.25 avgt 5 688.534 29.812 ms/op  
BatchIteratorBenchmark.iterate 256 0.25 16384 0.5 avgt 5 1178.611 70.219 ms/op  
BatchIteratorBenchmark.iterate 256 0.5 8 0.1 avgt 5 0.604 0.028 ms/op  
BatchIteratorBenchmark.iterate 256 0.5 8 0.25 avgt 5 0.449 0.015 ms/op  
BatchIteratorBenchmark.iterate 256 0.5 8 0.5 avgt 5 0.723 0.038 ms/op  
BatchIteratorBenchmark.iterate 256 0.5 64 0.1 avgt 5 15.569 0.242 ms/op  
BatchIteratorBenchmark.iterate 256 0.5 64 0.25 avgt 5 11.358 0.463 ms/op  
BatchIteratorBenchmark.iterate 256 0.5 64 0.5 avgt 5 4.731 0.191 ms/op  
BatchIteratorBenchmark.iterate 256 0.5 128 0.1 avgt 5 34.044 1.285 ms/op  
BatchIteratorBenchmark.iterate 256 0.5 128 0.25 avgt 5 27.343 1.212 ms/op  
BatchIteratorBenchmark.iterate 256 0.5 128 0.5 avgt 5 9.294 0.666 ms/op  
BatchIteratorBenchmark.iterate 256 0.5 256 0.1 avgt 5 58.937 1.05 ms/op  
BatchIteratorBenchmark.iterate 256 0.5 256 0.25 avgt 5 53.248 2.903 ms/op  
BatchIteratorBenchmark.iterate 256 0.5 256 0.5 avgt 5 18.567 1.467 ms/op  
BatchIteratorBenchmark.iterate 256 0.5 512 0.1 avgt 5 118.73 5.617 ms/op  
BatchIteratorBenchmark.iterate 256 0.5 512 0.25 avgt 5 107.753 6.559 ms/op  
BatchIteratorBenchmark.iterate 256 0.5 512 0.5 avgt 5 37.815 5.467 ms/op  
BatchIteratorBenchmark.iterate 256 0.5 1024 0.1 avgt 5 240.75 17.597 ms/op  
BatchIteratorBenchmark.iterate 256 0.5 1024 0.25 avgt 5 241.96 10.548 ms/op  
BatchIteratorBenchmark.iterate 256 0.5 1024 0.5 avgt 5 76.534 10.914 ms/op  
BatchIteratorBenchmark.iterate 256 0.5 2096 0.1 avgt 5 477.499 32.21 ms/op  
BatchIteratorBenchmark.iterate 256 0.5 2096 0.25 avgt 5 470.776 11.39 ms/op  
BatchIteratorBenchmark.iterate 256 0.5 2096 0.5 avgt 5 154.338 11.892 ms/op  
BatchIteratorBenchmark.iterate 256 0.5 4096 0.1 avgt 5 916.005 27.301 ms/op  
BatchIteratorBenchmark.iterate 256 0.5 4096 0.25 avgt 5 924.793 70.184 ms/op  
BatchIteratorBenchmark.iterate 256 0.5 4096 0.5 avgt 5 293.091 28.47 ms/op  
BatchIteratorBenchmark.iterate 256 0.5 8192 0.1 avgt 5 1877.342 60.184 ms/op  
BatchIteratorBenchmark.iterate 256 0.5 8192 0.25 avgt 5 1802.959 87.297 ms/op  
BatchIteratorBenchmark.iterate 256 0.5 8192 0.5 avgt 5 582.186 42.892 ms/op  
BatchIteratorBenchmark.iterate 256 0.5 16384 0.1 avgt 5 3638.314 42.534 ms/op  
BatchIteratorBenchmark.iterate 256 0.5 16384 0.25 avgt 5 3647.732 95.176 ms/op  
BatchIteratorBenchmark.iterate 256 0.5 16384 0.5 avgt 5 1175.859 63.867 ms/op  
BatchIteratorBenchmark.iterate 512 0.1 8 0.1 avgt 5 0.212 0.009 ms/op  
BatchIteratorBenchmark.iterate 512 0.1 8 0.25 avgt 5 0.21 0.006 ms/op  
BatchIteratorBenchmark.iterate 512 0.1 8 0.5 avgt 5 0.614 0.034 ms/op  
BatchIteratorBenchmark.iterate 512 0.1 64 0.1 avgt 5 1.088 0.036 ms/op  
BatchIteratorBenchmark.iterate 512 0.1 64 0.25 avgt 5 0.969 0.065 ms/op  
BatchIteratorBenchmark.iterate 512 0.1 64 0.5 avgt 5 4.581 0.214 ms/op  
BatchIteratorBenchmark.iterate 512 0.1 128 0.1 avgt 5 2.101 0.111 ms/op  
BatchIteratorBenchmark.iterate 512 0.1 128 0.25 avgt 5 5.869 0.18 ms/op  
BatchIteratorBenchmark.iterate 512 0.1 128 0.5 avgt 5 7.196 0.285 ms/op  
BatchIteratorBenchmark.iterate 512 0.1 256 0.1 avgt 5 6.316 0.382 ms/op  
BatchIteratorBenchmark.iterate 512 0.1 256 0.25 avgt 5 11.962 0.631 ms/op  
BatchIteratorBenchmark.iterate 512 0.1 256 0.5 avgt 5 17.725 1.484 ms/op  
BatchIteratorBenchmark.iterate 512 0.1 512 0.1 avgt 5 10.446 0.46 ms/op  
BatchIteratorBenchmark.iterate 512 0.1 512 0.25 avgt 5 21.685 0.496 ms/op  
BatchIteratorBenchmark.iterate 512 0.1 512 0.5 avgt 5 38.51 1.517 ms/op  
BatchIteratorBenchmark.iterate 512 0.1 1024 0.1 avgt 5 23.702 0.606 ms/op  
BatchIteratorBenchmark.iterate 512 0.1 1024 0.25 avgt 5 41.468 1.396 ms/op  
BatchIteratorBenchmark.iterate 512 0.1 1024 0.5 avgt 5 76.032 2.378 ms/op  
BatchIteratorBenchmark.iterate 512 0.1 2096 0.1 avgt 5 45.513 1.094 ms/op  
BatchIteratorBenchmark.iterate 512 0.1 2096 0.25 avgt 5 85.059 3.753 ms/op  
BatchIteratorBenchmark.iterate 512 0.1 2096 0.5 avgt 5 155.465 2.405 ms/op  
BatchIteratorBenchmark.iterate 512 0.1 4096 0.1 avgt 5 94.094 6.123 ms/op  
BatchIteratorBenchmark.iterate 512 0.1 4096 0.25 avgt 5 166.49 8.492 ms/op  
BatchIteratorBenchmark.iterate 512 0.1 4096 0.5 avgt 5 286.724 12.219 ms/op  
BatchIteratorBenchmark.iterate 512 0.1 8192 0.1 avgt 5 175.971 9.321 ms/op  
BatchIteratorBenchmark.iterate 512 0.1 8192 0.25 avgt 5 329.869 13 ms/op  
BatchIteratorBenchmark.iterate 512 0.1 8192 0.5 avgt 5 600.247 31.441 ms/op  
BatchIteratorBenchmark.iterate 512 0.1 16384 0.1 avgt 5 358.092 33.453 ms/op  
BatchIteratorBenchmark.iterate 512 0.1 16384 0.25 avgt 5 653.748 21.56 ms/op  
BatchIteratorBenchmark.iterate 512 0.1 16384 0.5 avgt 5 1194.241 44.961 ms/op  
BatchIteratorBenchmark.iterate 512 0.25 8 0.1 avgt 5 0.19 0.007 ms/op  
BatchIteratorBenchmark.iterate 512 0.25 8 0.25 avgt 5 0.236 0.012 ms/op  
BatchIteratorBenchmark.iterate 512 0.25 8 0.5 avgt 5 0.323 0.019 ms/op  
BatchIteratorBenchmark.iterate 512 0.25 64 0.1 avgt 5 9.356 0.237 ms/op  
BatchIteratorBenchmark.iterate 512 0.25 64 0.25 avgt 5 2.491 0.134 ms/op  
BatchIteratorBenchmark.iterate 512 0.25 64 0.5 avgt 5 4.403 0.059 ms/op  
BatchIteratorBenchmark.iterate 512 0.25 128 0.1 avgt 5 15.434 0.862 ms/op  
BatchIteratorBenchmark.iterate 512 0.25 128 0.25 avgt 5 4.581 0.141 ms/op  
BatchIteratorBenchmark.iterate 512 0.25 128 0.5 avgt 5 9.318 0.491 ms/op  
BatchIteratorBenchmark.iterate 512 0.25 256 0.1 avgt 5 29.597 1.166 ms/op  
BatchIteratorBenchmark.iterate 512 0.25 256 0.25 avgt 5 10.665 0.245 ms/op  
BatchIteratorBenchmark.iterate 512 0.25 256 0.5 avgt 5 19.384 0.382 ms/op  
BatchIteratorBenchmark.iterate 512 0.25 512 0.1 avgt 5 66.819 2.174 ms/op  
BatchIteratorBenchmark.iterate 512 0.25 512 0.25 avgt 5 20.948 0.362 ms/op  
BatchIteratorBenchmark.iterate 512 0.25 512 0.5 avgt 5 35.545 2.225 ms/op  
BatchIteratorBenchmark.iterate 512 0.25 1024 0.1 avgt 5 117.798 5.433 ms/op  
BatchIteratorBenchmark.iterate 512 0.25 1024 0.25 avgt 5 42.534 0.888 ms/op  
BatchIteratorBenchmark.iterate 512 0.25 1024 0.5 avgt 5 72.338 2.868 ms/op  
BatchIteratorBenchmark.iterate 512 0.25 2096 0.1 avgt 5 267.372 8.566 ms/op  
BatchIteratorBenchmark.iterate 512 0.25 2096 0.25 avgt 5 87.697 2.602 ms/op  
BatchIteratorBenchmark.iterate 512 0.25 2096 0.5 avgt 5 142.496 10.093 ms/op  
BatchIteratorBenchmark.iterate 512 0.25 4096 0.1 avgt 5 512.603 16.149 ms/op  
BatchIteratorBenchmark.iterate 512 0.25 4096 0.25 avgt 5 165.944 4.876 ms/op  
BatchIteratorBenchmark.iterate 512 0.25 4096 0.5 avgt 5 300.813 7.101 ms/op  
BatchIteratorBenchmark.iterate 512 0.25 8192 0.1 avgt 5 1077.116 37.852 ms/op  
BatchIteratorBenchmark.iterate 512 0.25 8192 0.25 avgt 5 331.44 23.604 ms/op  
BatchIteratorBenchmark.iterate 512 0.25 8192 0.5 avgt 5 573.211 23.427 ms/op  
BatchIteratorBenchmark.iterate 512 0.25 16384 0.1 avgt 5 2028.898 61.492 ms/op  
BatchIteratorBenchmark.iterate 512 0.25 16384 0.25 avgt 5 649.163 22.682 ms/op  
BatchIteratorBenchmark.iterate 512 0.25 16384 0.5 avgt 5 1195.114 70.295 ms/op  
BatchIteratorBenchmark.iterate 512 0.5 8 0.1 avgt 5 0.246 0.011 ms/op  
BatchIteratorBenchmark.iterate 512 0.5 8 0.25 avgt 5 1.443 0.051 ms/op  
BatchIteratorBenchmark.iterate 512 0.5 8 0.5 avgt 5 0.598 0.017 ms/op  
BatchIteratorBenchmark.iterate 512 0.5 64 0.1 avgt 5 13.955 0.335 ms/op  
BatchIteratorBenchmark.iterate 512 0.5 64 0.25 avgt 5 14.126 0.729 ms/op  
BatchIteratorBenchmark.iterate 512 0.5 64 0.5 avgt 5 5.144 0.302 ms/op  
BatchIteratorBenchmark.iterate 512 0.5 128 0.1 avgt 5 29.705 0.737 ms/op  
BatchIteratorBenchmark.iterate 512 0.5 128 0.25 avgt 5 29.022 1.795 ms/op  
BatchIteratorBenchmark.iterate 512 0.5 128 0.5 avgt 5 10.103 0.306 ms/op  
BatchIteratorBenchmark.iterate 512 0.5 256 0.1 avgt 5 54.502 1.598 ms/op  
BatchIteratorBenchmark.iterate 512 0.5 256 0.25 avgt 5 51.175 1.668 ms/op  
BatchIteratorBenchmark.iterate 512 0.5 256 0.5 avgt 5 17.974 0.739 ms/op  
BatchIteratorBenchmark.iterate 512 0.5 512 0.1 avgt 5 125.287 8.207 ms/op  
BatchIteratorBenchmark.iterate 512 0.5 512 0.25 avgt 5 110.44 2.79 ms/op  
BatchIteratorBenchmark.iterate 512 0.5 512 0.5 avgt 5 36.114 1.265 ms/op  
BatchIteratorBenchmark.iterate 512 0.5 1024 0.1 avgt 5 218.509 5.789 ms/op  
BatchIteratorBenchmark.iterate 512 0.5 1024 0.25 avgt 5 238.337 6.447 ms/op  
BatchIteratorBenchmark.iterate 512 0.5 1024 0.5 avgt 5 76.261 3.927 ms/op  
BatchIteratorBenchmark.iterate 512 0.5 2096 0.1 avgt 5 480.542 24.153 ms/op  
BatchIteratorBenchmark.iterate 512 0.5 2096 0.25 avgt 5 487.402 39.954 ms/op  
BatchIteratorBenchmark.iterate 512 0.5 2096 0.5 avgt 5 146.468 8.82 ms/op  
BatchIteratorBenchmark.iterate 512 0.5 4096 0.1 avgt 5 952.064 64.483 ms/op  
BatchIteratorBenchmark.iterate 512 0.5 4096 0.25 avgt 5 912.621 17.245 ms/op  
BatchIteratorBenchmark.iterate 512 0.5 4096 0.5 avgt 5 301.135 21.117 ms/op  
BatchIteratorBenchmark.iterate 512 0.5 8192 0.1 avgt 5 1821.15 62.973 ms/op  
BatchIteratorBenchmark.iterate 512 0.5 8192 0.25 avgt 5 1822.627 43.698 ms/op  
BatchIteratorBenchmark.iterate 512 0.5 8192 0.5 avgt 5 596.827 26.334 ms/op  
BatchIteratorBenchmark.iterate 512 0.5 16384 0.1 avgt 5 3681.541 159.046 ms/op  
BatchIteratorBenchmark.iterate 512 0.5 16384 0.25 avgt 5 3605.881 147.966 ms/op  
BatchIteratorBenchmark.iterate 512 0.5 16384 0.5 avgt 5 1184.733 27.392 ms/op  
BatchIteratorBenchmark.batchIterate            64          0.1       8          0.1  avgt    5     0.152 ±   0.004  ms/op
BatchIteratorBenchmark.batchIterate            64          0.1       8         0.25  avgt    5     0.173 ±   0.007  ms/op
BatchIteratorBenchmark.batchIterate            64          0.1       8          0.5  avgt    5     0.116 ±   0.005  ms/op
BatchIteratorBenchmark.batchIterate            64          0.1      64          0.1  avgt    5     0.590 ±   0.014  ms/op
BatchIteratorBenchmark.batchIterate            64          0.1      64         0.25  avgt    5     1.281 ±   0.033  ms/op
BatchIteratorBenchmark.batchIterate            64          0.1      64          0.5  avgt    5     1.841 ±   0.041  ms/op
BatchIteratorBenchmark.batchIterate            64          0.1     128          0.1  avgt    5     1.014 ±   0.022  ms/op
BatchIteratorBenchmark.batchIterate            64          0.1     128         0.25  avgt    5     2.034 ±   0.122  ms/op
BatchIteratorBenchmark.batchIterate            64          0.1     128          0.5  avgt    5     3.795 ±   0.124  ms/op
BatchIteratorBenchmark.batchIterate            64          0.1     256          0.1  avgt    5     2.257 ±   0.083  ms/op
BatchIteratorBenchmark.batchIterate            64          0.1     256         0.25  avgt    5     3.637 ±   0.117  ms/op
BatchIteratorBenchmark.batchIterate            64          0.1     256          0.5  avgt    5     7.014 ±   0.680  ms/op
BatchIteratorBenchmark.batchIterate            64          0.1     512          0.1  avgt    5     4.065 ±   0.112  ms/op
BatchIteratorBenchmark.batchIterate            64          0.1     512         0.25  avgt    5     7.852 ±   0.233  ms/op
BatchIteratorBenchmark.batchIterate            64          0.1     512          0.5  avgt    5    16.014 ±   0.499  ms/op
BatchIteratorBenchmark.batchIterate            64          0.1    1024          0.1  avgt    5     9.729 ±   0.224  ms/op
BatchIteratorBenchmark.batchIterate            64          0.1    1024         0.25  avgt    5    18.215 ±   0.300  ms/op
BatchIteratorBenchmark.batchIterate            64          0.1    1024          0.5  avgt    5    31.046 ±   1.081  ms/op
BatchIteratorBenchmark.batchIterate            64          0.1    2096          0.1  avgt    5    16.234 ±   0.265  ms/op
BatchIteratorBenchmark.batchIterate            64          0.1    2096         0.25  avgt    5    37.554 ±   1.050  ms/op
BatchIteratorBenchmark.batchIterate            64          0.1    2096          0.5  avgt    5    63.384 ±   4.159  ms/op
BatchIteratorBenchmark.batchIterate            64          0.1    4096          0.1  avgt    5    33.609 ±   1.013  ms/op
BatchIteratorBenchmark.batchIterate            64          0.1    4096         0.25  avgt    5    64.756 ±   2.629  ms/op
BatchIteratorBenchmark.batchIterate            64          0.1    4096          0.5  avgt    5   128.456 ±  21.918  ms/op
BatchIteratorBenchmark.batchIterate            64          0.1    8192          0.1  avgt    5    81.682 ±   6.423  ms/op
BatchIteratorBenchmark.batchIterate            64          0.1    8192         0.25  avgt    5   132.691 ±   8.358  ms/op
BatchIteratorBenchmark.batchIterate            64          0.1    8192          0.5  avgt    5   241.221 ±  16.687  ms/op
BatchIteratorBenchmark.batchIterate            64          0.1   16384          0.1  avgt    5   139.013 ±   3.735  ms/op
BatchIteratorBenchmark.batchIterate            64          0.1   16384         0.25  avgt    5   268.452 ±  18.254  ms/op
BatchIteratorBenchmark.batchIterate            64          0.1   16384          0.5  avgt    5   489.006 ±  14.223  ms/op
BatchIteratorBenchmark.batchIterate            64         0.25       8          0.1  avgt    5     0.059 ±   0.007  ms/op
BatchIteratorBenchmark.batchIterate            64         0.25       8         0.25  avgt    5     0.017 ±   0.001  ms/op
BatchIteratorBenchmark.batchIterate            64         0.25       8          0.5  avgt    5     0.321 ±   0.017  ms/op
BatchIteratorBenchmark.batchIterate            64         0.25      64          0.1  avgt    5     0.850 ±   0.044  ms/op
BatchIteratorBenchmark.batchIterate            64         0.25      64         0.25  avgt    5     1.057 ±   0.023  ms/op
BatchIteratorBenchmark.batchIterate            64         0.25      64          0.5  avgt    5     1.779 ±   0.021  ms/op
BatchIteratorBenchmark.batchIterate            64         0.25     128          0.1  avgt    5     2.410 ±   0.152  ms/op
BatchIteratorBenchmark.batchIterate            64         0.25     128         0.25  avgt    5     1.888 ±   0.052  ms/op
BatchIteratorBenchmark.batchIterate            64         0.25     128          0.5  avgt    5     3.561 ±   0.095  ms/op
BatchIteratorBenchmark.batchIterate            64         0.25     256          0.1  avgt    5     3.888 ±   0.125  ms/op
BatchIteratorBenchmark.batchIterate            64         0.25     256         0.25  avgt    5     4.053 ±   0.101  ms/op
BatchIteratorBenchmark.batchIterate            64         0.25     256          0.5  avgt    5     8.183 ±   0.334  ms/op
BatchIteratorBenchmark.batchIterate            64         0.25     512          0.1  avgt    5     8.005 ±   0.501  ms/op
BatchIteratorBenchmark.batchIterate            64         0.25     512         0.25  avgt    5     9.106 ±   0.379  ms/op
BatchIteratorBenchmark.batchIterate            64         0.25     512          0.5  avgt    5    16.031 ±   0.415  ms/op
BatchIteratorBenchmark.batchIterate            64         0.25    1024          0.1  avgt    5    18.092 ±   0.552  ms/op
BatchIteratorBenchmark.batchIterate            64         0.25    1024         0.25  avgt    5    18.414 ±   0.987  ms/op
BatchIteratorBenchmark.batchIterate            64         0.25    1024          0.5  avgt    5    31.403 ±   0.839  ms/op
BatchIteratorBenchmark.batchIterate            64         0.25    2096          0.1  avgt    5    36.718 ±   1.185  ms/op
BatchIteratorBenchmark.batchIterate            64         0.25    2096         0.25  avgt    5    29.909 ±   1.601  ms/op
BatchIteratorBenchmark.batchIterate            64         0.25    2096          0.5  avgt    5    62.156 ±   1.963  ms/op
BatchIteratorBenchmark.batchIterate            64         0.25    4096          0.1  avgt    5    66.285 ±   1.700  ms/op
BatchIteratorBenchmark.batchIterate            64         0.25    4096         0.25  avgt    5    67.616 ±  14.608  ms/op
BatchIteratorBenchmark.batchIterate            64         0.25    4096          0.5  avgt    5   122.925 ±   9.033  ms/op
BatchIteratorBenchmark.batchIterate            64         0.25    8192          0.1  avgt    5   135.031 ±   7.276  ms/op
BatchIteratorBenchmark.batchIterate            64         0.25    8192         0.25  avgt    5   126.579 ±  11.576  ms/op
BatchIteratorBenchmark.batchIterate            64         0.25    8192          0.5  avgt    5   244.578 ±  12.786  ms/op
BatchIteratorBenchmark.batchIterate            64         0.25   16384          0.1  avgt    5   267.245 ±   7.511  ms/op
BatchIteratorBenchmark.batchIterate            64         0.25   16384         0.25  avgt    5   273.839 ±  12.066  ms/op
BatchIteratorBenchmark.batchIterate            64         0.25   16384          0.5  avgt    5   497.041 ±  15.425  ms/op
BatchIteratorBenchmark.batchIterate            64          0.5       8          0.1  avgt    5     0.336 ±   0.021  ms/op
BatchIteratorBenchmark.batchIterate            64          0.5       8         0.25  avgt    5     0.312 ±   0.010  ms/op
BatchIteratorBenchmark.batchIterate            64          0.5       8          0.5  avgt    5     0.333 ±   0.003  ms/op
BatchIteratorBenchmark.batchIterate            64          0.5      64          0.1  avgt    5     1.941 ±   0.097  ms/op
BatchIteratorBenchmark.batchIterate            64          0.5      64         0.25  avgt    5     2.280 ±   0.096  ms/op
BatchIteratorBenchmark.batchIterate            64          0.5      64          0.5  avgt    5     1.822 ±   0.031  ms/op
BatchIteratorBenchmark.batchIterate            64          0.5     128          0.1  avgt    5     4.177 ±   0.126  ms/op
BatchIteratorBenchmark.batchIterate            64          0.5     128         0.25  avgt    5     3.485 ±   0.133  ms/op
BatchIteratorBenchmark.batchIterate            64          0.5     128          0.5  avgt    5     4.125 ±   0.160  ms/op
BatchIteratorBenchmark.batchIterate            64          0.5     256          0.1  avgt    5     7.325 ±   0.335  ms/op
BatchIteratorBenchmark.batchIterate            64          0.5     256         0.25  avgt    5     8.011 ±   0.295  ms/op
BatchIteratorBenchmark.batchIterate            64          0.5     256          0.5  avgt    5     7.028 ±   0.180  ms/op
BatchIteratorBenchmark.batchIterate            64          0.5     512          0.1  avgt    5    14.647 ±   0.673  ms/op
BatchIteratorBenchmark.batchIterate            64          0.5     512         0.25  avgt    5    14.763 ±   0.402  ms/op
BatchIteratorBenchmark.batchIterate            64          0.5     512          0.5  avgt    5    15.356 ±   0.749  ms/op
BatchIteratorBenchmark.batchIterate            64          0.5    1024          0.1  avgt    5    29.911 ±   0.786  ms/op
BatchIteratorBenchmark.batchIterate            64          0.5    1024         0.25  avgt    5    30.769 ±   1.022  ms/op
BatchIteratorBenchmark.batchIterate            64          0.5    1024          0.5  avgt    5    29.013 ±   0.634  ms/op
BatchIteratorBenchmark.batchIterate            64          0.5    2096          0.1  avgt    5    60.273 ±   2.383  ms/op
BatchIteratorBenchmark.batchIterate            64          0.5    2096         0.25  avgt    5    63.270 ±   3.062  ms/op
BatchIteratorBenchmark.batchIterate            64          0.5    2096          0.5  avgt    5    62.493 ±   2.600  ms/op
BatchIteratorBenchmark.batchIterate            64          0.5    4096          0.1  avgt    5   117.218 ±   6.262  ms/op
BatchIteratorBenchmark.batchIterate            64          0.5    4096         0.25  avgt    5   121.837 ±   2.550  ms/op
BatchIteratorBenchmark.batchIterate            64          0.5    4096          0.5  avgt    5   120.966 ±   6.148  ms/op
BatchIteratorBenchmark.batchIterate            64          0.5    8192          0.1  avgt    5   234.861 ±   9.849  ms/op
BatchIteratorBenchmark.batchIterate            64          0.5    8192         0.25  avgt    5   244.211 ±  10.352  ms/op
BatchIteratorBenchmark.batchIterate            64          0.5    8192          0.5  avgt    5   241.198 ±   7.795  ms/op
BatchIteratorBenchmark.batchIterate            64          0.5   16384          0.1  avgt    5   476.608 ±  15.191  ms/op
BatchIteratorBenchmark.batchIterate            64          0.5   16384         0.25  avgt    5   491.693 ±  20.037  ms/op
BatchIteratorBenchmark.batchIterate            64          0.5   16384          0.5  avgt    5   472.299 ±  26.578  ms/op
BatchIteratorBenchmark.batchIterate           128          0.1       8          0.1  avgt    5     0.025 ±   0.001  ms/op
BatchIteratorBenchmark.batchIterate           128          0.1       8         0.25  avgt    5     0.231 ±   0.005  ms/op
BatchIteratorBenchmark.batchIterate           128          0.1       8          0.5  avgt    5     0.359 ±   0.016  ms/op
BatchIteratorBenchmark.batchIterate           128          0.1      64          0.1  avgt    5     0.610 ±   0.032  ms/op
BatchIteratorBenchmark.batchIterate           128          0.1      64         0.25  avgt    5     1.114 ±   0.026  ms/op
BatchIteratorBenchmark.batchIterate           128          0.1      64          0.5  avgt    5     1.903 ±   0.122  ms/op
BatchIteratorBenchmark.batchIterate           128          0.1     128          0.1  avgt    5     1.607 ±   0.071  ms/op
BatchIteratorBenchmark.batchIterate           128          0.1     128         0.25  avgt    5     2.089 ±   0.082  ms/op
BatchIteratorBenchmark.batchIterate           128          0.1     128          0.5  avgt    5     3.082 ±   0.023  ms/op
BatchIteratorBenchmark.batchIterate           128          0.1     256          0.1  avgt    5     2.859 ±   0.135  ms/op
BatchIteratorBenchmark.batchIterate           128          0.1     256         0.25  avgt    5     3.802 ±   0.109  ms/op
BatchIteratorBenchmark.batchIterate           128          0.1     256          0.5  avgt    5     7.748 ±   0.136  ms/op
BatchIteratorBenchmark.batchIterate           128          0.1     512          0.1  avgt    5     4.670 ±   0.106  ms/op
BatchIteratorBenchmark.batchIterate           128          0.1     512         0.25  avgt    5     8.014 ±   0.321  ms/op
BatchIteratorBenchmark.batchIterate           128          0.1     512          0.5  avgt    5    13.272 ±   0.555  ms/op
BatchIteratorBenchmark.batchIterate           128          0.1    1024          0.1  avgt    5     8.660 ±   0.454  ms/op
BatchIteratorBenchmark.batchIterate           128          0.1    1024         0.25  avgt    5    15.937 ±   0.968  ms/op
BatchIteratorBenchmark.batchIterate           128          0.1    1024          0.5  avgt    5    29.833 ±   1.523  ms/op
BatchIteratorBenchmark.batchIterate           128          0.1    2096          0.1  avgt    5    19.657 ±   0.935  ms/op
BatchIteratorBenchmark.batchIterate           128          0.1    2096         0.25  avgt    5    32.277 ±   1.385  ms/op
BatchIteratorBenchmark.batchIterate           128          0.1    2096          0.5  avgt    5    58.624 ±   2.191  ms/op
BatchIteratorBenchmark.batchIterate           128          0.1    4096          0.1  avgt    5    38.848 ±   1.291  ms/op
BatchIteratorBenchmark.batchIterate           128          0.1    4096         0.25  avgt    5    63.076 ±   2.584  ms/op
BatchIteratorBenchmark.batchIterate           128          0.1    4096          0.5  avgt    5   118.555 ±   1.131  ms/op
BatchIteratorBenchmark.batchIterate           128          0.1    8192          0.1  avgt    5    74.517 ±   3.387  ms/op
BatchIteratorBenchmark.batchIterate           128          0.1    8192         0.25  avgt    5   118.283 ±   4.132  ms/op
BatchIteratorBenchmark.batchIterate           128          0.1    8192          0.5  avgt    5   232.554 ±   4.969  ms/op
BatchIteratorBenchmark.batchIterate           128          0.1   16384          0.1  avgt    5   131.654 ±   4.110  ms/op
BatchIteratorBenchmark.batchIterate           128          0.1   16384         0.25  avgt    5   276.838 ±  10.670  ms/op
BatchIteratorBenchmark.batchIterate           128          0.1   16384          0.5  avgt    5   462.903 ±  27.099  ms/op
BatchIteratorBenchmark.batchIterate           128         0.25       8          0.1  avgt    5     0.167 ±   0.007  ms/op
BatchIteratorBenchmark.batchIterate           128         0.25       8         0.25  avgt    5     0.068 ±   0.003  ms/op
BatchIteratorBenchmark.batchIterate           128         0.25       8          0.5  avgt    5     0.108 ±   0.006  ms/op
BatchIteratorBenchmark.batchIterate           128         0.25      64          0.1  avgt    5     1.233 ±   0.035  ms/op
BatchIteratorBenchmark.batchIterate           128         0.25      64         0.25  avgt    5     1.108 ±   0.022  ms/op
BatchIteratorBenchmark.batchIterate           128         0.25      64          0.5  avgt    5     1.843 ±   0.099  ms/op
BatchIteratorBenchmark.batchIterate           128         0.25     128          0.1  avgt    5     2.010 ±   0.059  ms/op
BatchIteratorBenchmark.batchIterate           128         0.25     128         0.25  avgt    5     2.311 ±   0.043  ms/op
BatchIteratorBenchmark.batchIterate           128         0.25     128          0.5  avgt    5     3.812 ±   0.221  ms/op
BatchIteratorBenchmark.batchIterate           128         0.25     256          0.1  avgt    5     3.386 ±   0.134  ms/op
BatchIteratorBenchmark.batchIterate           128         0.25     256         0.25  avgt    5     3.846 ±   0.206  ms/op
BatchIteratorBenchmark.batchIterate           128         0.25     256          0.5  avgt    5     7.127 ±   0.231  ms/op
BatchIteratorBenchmark.batchIterate           128         0.25     512          0.1  avgt    5     7.981 ±   0.424  ms/op
BatchIteratorBenchmark.batchIterate           128         0.25     512         0.25  avgt    5     8.416 ±   0.260  ms/op
BatchIteratorBenchmark.batchIterate           128         0.25     512          0.5  avgt    5    14.535 ±   0.277  ms/op
BatchIteratorBenchmark.batchIterate           128         0.25    1024          0.1  avgt    5    16.905 ±   0.607  ms/op
BatchIteratorBenchmark.batchIterate           128         0.25    1024         0.25  avgt    5    17.155 ±   0.406  ms/op
BatchIteratorBenchmark.batchIterate           128         0.25    1024          0.5  avgt    5    27.355 ±   0.749  ms/op
BatchIteratorBenchmark.batchIterate           128         0.25    2096          0.1  avgt    5    34.793 ±   1.656  ms/op
BatchIteratorBenchmark.batchIterate           128         0.25    2096         0.25  avgt    5    32.112 ±   0.827  ms/op
BatchIteratorBenchmark.batchIterate           128         0.25    2096          0.5  avgt    5    59.473 ±   1.619  ms/op
BatchIteratorBenchmark.batchIterate           128         0.25    4096          0.1  avgt    5    61.531 ±   0.975  ms/op
BatchIteratorBenchmark.batchIterate           128         0.25    4096         0.25  avgt    5    64.289 ±   1.005  ms/op
BatchIteratorBenchmark.batchIterate           128         0.25    4096          0.5  avgt    5   117.340 ±   3.830  ms/op
BatchIteratorBenchmark.batchIterate           128         0.25    8192          0.1  avgt    5   126.878 ±   5.296  ms/op
BatchIteratorBenchmark.batchIterate           128         0.25    8192         0.25  avgt    5   137.905 ±   9.029  ms/op
BatchIteratorBenchmark.batchIterate           128         0.25    8192          0.5  avgt    5   230.175 ±   6.588  ms/op
BatchIteratorBenchmark.batchIterate           128         0.25   16384          0.1  avgt    5   256.408 ±   8.712  ms/op
BatchIteratorBenchmark.batchIterate           128         0.25   16384         0.25  avgt    5   250.186 ±  14.578  ms/op
BatchIteratorBenchmark.batchIterate           128         0.25   16384          0.5  avgt    5   462.458 ±  29.280  ms/op
BatchIteratorBenchmark.batchIterate           128          0.5       8          0.1  avgt    5     0.101 ±   0.004  ms/op
BatchIteratorBenchmark.batchIterate           128          0.5       8         0.25  avgt    5     0.145 ±   0.017  ms/op
BatchIteratorBenchmark.batchIterate           128          0.5       8          0.5  avgt    5     0.249 ±   0.012  ms/op
BatchIteratorBenchmark.batchIterate           128          0.5      64          0.1  avgt    5     2.031 ±   0.093  ms/op
BatchIteratorBenchmark.batchIterate           128          0.5      64         0.25  avgt    5     2.042 ±   0.044  ms/op
BatchIteratorBenchmark.batchIterate           128          0.5      64          0.5  avgt    5     1.378 ±   0.018  ms/op
BatchIteratorBenchmark.batchIterate           128          0.5     128          0.1  avgt    5     3.583 ±   0.069  ms/op
BatchIteratorBenchmark.batchIterate           128          0.5     128         0.25  avgt    5     3.364 ±   0.044  ms/op
BatchIteratorBenchmark.batchIterate           128          0.5     128          0.5  avgt    5     3.493 ±   0.040  ms/op
BatchIteratorBenchmark.batchIterate           128          0.5     256          0.1  avgt    5     7.034 ±   0.589  ms/op
BatchIteratorBenchmark.batchIterate           128          0.5     256         0.25  avgt    5     7.160 ±   0.472  ms/op
BatchIteratorBenchmark.batchIterate           128          0.5     256          0.5  avgt    5     6.985 ±   0.352  ms/op
BatchIteratorBenchmark.batchIterate           128          0.5     512          0.1  avgt    5    13.124 ±   0.801  ms/op
BatchIteratorBenchmark.batchIterate           128          0.5     512         0.25  avgt    5    12.531 ±   0.551  ms/op
BatchIteratorBenchmark.batchIterate           128          0.5     512          0.5  avgt    5    14.139 ±   0.977  ms/op
BatchIteratorBenchmark.batchIterate           128          0.5    1024          0.1  avgt    5    29.561 ±   0.807  ms/op
BatchIteratorBenchmark.batchIterate           128          0.5    1024         0.25  avgt    5    28.835 ±   1.866  ms/op
BatchIteratorBenchmark.batchIterate           128          0.5    1024          0.5  avgt    5    27.334 ±   0.734  ms/op
BatchIteratorBenchmark.batchIterate           128          0.5    2096          0.1  avgt    5    57.275 ±   2.992  ms/op
BatchIteratorBenchmark.batchIterate           128          0.5    2096         0.25  avgt    5    57.177 ±   2.123  ms/op
BatchIteratorBenchmark.batchIterate           128          0.5    2096          0.5  avgt    5    56.921 ±   1.047  ms/op
BatchIteratorBenchmark.batchIterate           128          0.5    4096          0.1  avgt    5   109.889 ±   3.194  ms/op
BatchIteratorBenchmark.batchIterate           128          0.5    4096         0.25  avgt    5   111.619 ±   7.351  ms/op
BatchIteratorBenchmark.batchIterate           128          0.5    4096          0.5  avgt    5   113.863 ±   3.258  ms/op
BatchIteratorBenchmark.batchIterate           128          0.5    8192          0.1  avgt    5   220.184 ±  13.729  ms/op
BatchIteratorBenchmark.batchIterate           128          0.5    8192         0.25  avgt    5   227.262 ±  10.250  ms/op
BatchIteratorBenchmark.batchIterate           128          0.5    8192          0.5  avgt    5   219.331 ±  12.805  ms/op
BatchIteratorBenchmark.batchIterate           128          0.5   16384          0.1  avgt    5   455.122 ±  15.350  ms/op
BatchIteratorBenchmark.batchIterate           128          0.5   16384         0.25  avgt    5   446.822 ±   6.249  ms/op
BatchIteratorBenchmark.batchIterate           128          0.5   16384          0.5  avgt    5   457.054 ±   7.772  ms/op
BatchIteratorBenchmark.batchIterate           256          0.1       8          0.1  avgt    5     0.070 ±   0.033  ms/op
BatchIteratorBenchmark.batchIterate           256          0.1       8         0.25  avgt    5     0.130 ±   0.006  ms/op
BatchIteratorBenchmark.batchIterate           256          0.1       8          0.5  avgt    5     0.260 ±   0.010  ms/op
BatchIteratorBenchmark.batchIterate           256          0.1      64          0.1  avgt    5     0.726 ±   0.032  ms/op
BatchIteratorBenchmark.batchIterate           256          0.1      64         0.25  avgt    5     1.084 ±   0.021  ms/op
BatchIteratorBenchmark.batchIterate           256          0.1      64          0.5  avgt    5     1.689 ±   0.062  ms/op
BatchIteratorBenchmark.batchIterate           256          0.1     128          0.1  avgt    5     1.063 ±   0.029  ms/op
BatchIteratorBenchmark.batchIterate           256          0.1     128         0.25  avgt    5     2.342 ±   0.182  ms/op
BatchIteratorBenchmark.batchIterate           256          0.1     128          0.5  avgt    5     2.585 ±   0.153  ms/op
BatchIteratorBenchmark.batchIterate           256          0.1     256          0.1  avgt    5     1.778 ±   0.107  ms/op
BatchIteratorBenchmark.batchIterate           256          0.1     256         0.25  avgt    5     4.051 ±   0.338  ms/op
BatchIteratorBenchmark.batchIterate           256          0.1     256          0.5  avgt    5     7.394 ±   0.324  ms/op
BatchIteratorBenchmark.batchIterate           256          0.1     512          0.1  avgt    5     3.403 ±   0.112  ms/op
BatchIteratorBenchmark.batchIterate           256          0.1     512         0.25  avgt    5     7.685 ±   0.181  ms/op
BatchIteratorBenchmark.batchIterate           256          0.1     512          0.5  avgt    5    13.459 ±   0.787  ms/op
BatchIteratorBenchmark.batchIterate           256          0.1    1024          0.1  avgt    5     8.719 ±   0.556  ms/op
BatchIteratorBenchmark.batchIterate           256          0.1    1024         0.25  avgt    5    16.566 ±   0.895  ms/op
BatchIteratorBenchmark.batchIterate           256          0.1    1024          0.5  avgt    5    26.059 ±   1.350  ms/op
BatchIteratorBenchmark.batchIterate           256          0.1    2096          0.1  avgt    5    15.609 ±   0.844  ms/op
BatchIteratorBenchmark.batchIterate           256          0.1    2096         0.25  avgt    5    29.250 ±   1.339  ms/op
BatchIteratorBenchmark.batchIterate           256          0.1    2096          0.5  avgt    5    51.874 ±   1.100  ms/op
BatchIteratorBenchmark.batchIterate           256          0.1    4096          0.1  avgt    5    33.830 ±   1.157  ms/op
BatchIteratorBenchmark.batchIterate           256          0.1    4096         0.25  avgt    5    61.442 ±   1.257  ms/op
BatchIteratorBenchmark.batchIterate           256          0.1    4096          0.5  avgt    5   108.650 ±   1.918  ms/op
BatchIteratorBenchmark.batchIterate           256          0.1    8192          0.1  avgt    5    66.977 ±   0.544  ms/op
BatchIteratorBenchmark.batchIterate           256          0.1    8192         0.25  avgt    5   119.199 ±   8.449  ms/op
BatchIteratorBenchmark.batchIterate           256          0.1    8192          0.5  avgt    5   220.192 ±   5.854  ms/op
BatchIteratorBenchmark.batchIterate           256          0.1   16384          0.1  avgt    5   141.874 ±  26.816  ms/op
BatchIteratorBenchmark.batchIterate           256          0.1   16384         0.25  avgt    5   247.107 ±   7.162  ms/op
BatchIteratorBenchmark.batchIterate           256          0.1   16384          0.5  avgt    5   436.489 ±  13.923  ms/op
BatchIteratorBenchmark.batchIterate           256         0.25       8          0.1  avgt    5     0.077 ±   0.004  ms/op
BatchIteratorBenchmark.batchIterate           256         0.25       8         0.25  avgt    5     0.078 ±   0.042  ms/op
BatchIteratorBenchmark.batchIterate           256         0.25       8          0.5  avgt    5     0.096 ±   0.001  ms/op
BatchIteratorBenchmark.batchIterate           256         0.25      64          0.1  avgt    5     1.001 ±   0.098  ms/op
BatchIteratorBenchmark.batchIterate           256         0.25      64         0.25  avgt    5     1.047 ±   0.021  ms/op
BatchIteratorBenchmark.batchIterate           256         0.25      64          0.5  avgt    5     1.980 ±   0.043  ms/op
BatchIteratorBenchmark.batchIterate           256         0.25     128          0.1  avgt    5     1.778 ±   0.133  ms/op
BatchIteratorBenchmark.batchIterate           256         0.25     128         0.25  avgt    5     1.746 ±   0.086  ms/op
BatchIteratorBenchmark.batchIterate           256         0.25     128          0.5  avgt    5     3.365 ±   0.267  ms/op
BatchIteratorBenchmark.batchIterate           256         0.25     256          0.1  avgt    5     3.336 ±   0.110  ms/op
BatchIteratorBenchmark.batchIterate           256         0.25     256         0.25  avgt    5     4.387 ±   0.097  ms/op
BatchIteratorBenchmark.batchIterate           256         0.25     256          0.5  avgt    5     7.366 ±   0.127  ms/op
BatchIteratorBenchmark.batchIterate           256         0.25     512          0.1  avgt    5     7.484 ±   0.290  ms/op
BatchIteratorBenchmark.batchIterate           256         0.25     512         0.25  avgt    5     7.463 ±   0.129  ms/op
BatchIteratorBenchmark.batchIterate           256         0.25     512          0.5  avgt    5    14.586 ±   1.153  ms/op
BatchIteratorBenchmark.batchIterate           256         0.25    1024          0.1  avgt    5    15.421 ±   0.253  ms/op
BatchIteratorBenchmark.batchIterate           256         0.25    1024         0.25  avgt    5    16.014 ±   0.682  ms/op
BatchIteratorBenchmark.batchIterate           256         0.25    1024          0.5  avgt    5    25.914 ±   0.898  ms/op
BatchIteratorBenchmark.batchIterate           256         0.25    2096          0.1  avgt    5    30.730 ±   1.626  ms/op
BatchIteratorBenchmark.batchIterate           256         0.25    2096         0.25  avgt    5    30.335 ±   1.389  ms/op
BatchIteratorBenchmark.batchIterate           256         0.25    2096          0.5  avgt    5    52.978 ±   0.990  ms/op
BatchIteratorBenchmark.batchIterate           256         0.25    4096          0.1  avgt    5    62.972 ±   1.923  ms/op
BatchIteratorBenchmark.batchIterate           256         0.25    4096         0.25  avgt    5    63.636 ±   3.126  ms/op
BatchIteratorBenchmark.batchIterate           256         0.25    4096          0.5  avgt    5   111.161 ±   1.428  ms/op
BatchIteratorBenchmark.batchIterate           256         0.25    8192          0.1  avgt    5   123.489 ±   4.469  ms/op
BatchIteratorBenchmark.batchIterate           256         0.25    8192         0.25  avgt    5   129.641 ±  13.198  ms/op
BatchIteratorBenchmark.batchIterate           256         0.25    8192          0.5  avgt    5   218.642 ±   7.064  ms/op
BatchIteratorBenchmark.batchIterate           256         0.25   16384          0.1  avgt    5   241.877 ±  12.114  ms/op
BatchIteratorBenchmark.batchIterate           256         0.25   16384         0.25  avgt    5   246.246 ±   7.932  ms/op
BatchIteratorBenchmark.batchIterate           256         0.25   16384          0.5  avgt    5   438.958 ±  15.901  ms/op
BatchIteratorBenchmark.batchIterate           256          0.5       8          0.1  avgt    5     0.227 ±   0.013  ms/op
BatchIteratorBenchmark.batchIterate           256          0.5       8         0.25  avgt    5     0.223 ±   0.012  ms/op
BatchIteratorBenchmark.batchIterate           256          0.5       8          0.5  avgt    5     0.290 ±   0.009  ms/op
BatchIteratorBenchmark.batchIterate           256          0.5      64          0.1  avgt    5     1.343 ±   0.044  ms/op
BatchIteratorBenchmark.batchIterate           256          0.5      64         0.25  avgt    5     1.848 ±   0.062  ms/op
BatchIteratorBenchmark.batchIterate           256          0.5      64          0.5  avgt    5     1.871 ±   0.131  ms/op
BatchIteratorBenchmark.batchIterate           256          0.5     128          0.1  avgt    5     3.148 ±   0.136  ms/op
BatchIteratorBenchmark.batchIterate           256          0.5     128         0.25  avgt    5     2.938 ±   0.150  ms/op
BatchIteratorBenchmark.batchIterate           256          0.5     128          0.5  avgt    5     3.111 ±   0.166  ms/op
BatchIteratorBenchmark.batchIterate           256          0.5     256          0.1  avgt    5     5.944 ±   0.181  ms/op
BatchIteratorBenchmark.batchIterate           256          0.5     256         0.25  avgt    5     6.299 ±   0.130  ms/op
BatchIteratorBenchmark.batchIterate           256          0.5     256          0.5  avgt    5     7.193 ±   0.334  ms/op
BatchIteratorBenchmark.batchIterate           256          0.5     512          0.1  avgt    5    13.323 ±   0.618  ms/op
BatchIteratorBenchmark.batchIterate           256          0.5     512         0.25  avgt    5    13.741 ±   0.216  ms/op
BatchIteratorBenchmark.batchIterate           256          0.5     512          0.5  avgt    5    14.599 ±   1.138  ms/op
BatchIteratorBenchmark.batchIterate           256          0.5    1024          0.1  avgt    5    25.709 ±   1.633  ms/op
BatchIteratorBenchmark.batchIterate           256          0.5    1024         0.25  avgt    5    27.816 ±   3.264  ms/op
BatchIteratorBenchmark.batchIterate           256          0.5    1024          0.5  avgt    5    25.211 ±   0.895  ms/op
BatchIteratorBenchmark.batchIterate           256          0.5    2096          0.1  avgt    5    54.568 ±   2.209  ms/op
BatchIteratorBenchmark.batchIterate           256          0.5    2096         0.25  avgt    5    54.072 ±   1.826  ms/op
BatchIteratorBenchmark.batchIterate           256          0.5    2096          0.5  avgt    5    51.084 ±   1.283  ms/op
BatchIteratorBenchmark.batchIterate           256          0.5    4096          0.1  avgt    5   107.258 ±   4.523  ms/op
BatchIteratorBenchmark.batchIterate           256          0.5    4096         0.25  avgt    5   103.501 ±   3.140  ms/op
BatchIteratorBenchmark.batchIterate           256          0.5    4096          0.5  avgt    5   110.882 ±   2.321  ms/op
BatchIteratorBenchmark.batchIterate           256          0.5    8192          0.1  avgt    5   216.020 ±  10.335  ms/op
BatchIteratorBenchmark.batchIterate           256          0.5    8192         0.25  avgt    5   215.019 ±   7.149  ms/op
BatchIteratorBenchmark.batchIterate           256          0.5    8192          0.5  avgt    5   216.897 ±  11.634  ms/op
BatchIteratorBenchmark.batchIterate           256          0.5   16384          0.1  avgt    5   424.237 ±  14.560  ms/op
BatchIteratorBenchmark.batchIterate           256          0.5   16384         0.25  avgt    5   424.673 ±  19.615  ms/op
BatchIteratorBenchmark.batchIterate           256          0.5   16384          0.5  avgt    5   425.778 ±  16.333  ms/op
BatchIteratorBenchmark.batchIterate           512          0.1       8          0.1  avgt    5     0.031 ±   0.001  ms/op
BatchIteratorBenchmark.batchIterate           512          0.1       8         0.25  avgt    5     0.121 ±   0.005  ms/op
BatchIteratorBenchmark.batchIterate           512          0.1       8          0.5  avgt    5     0.111 ±   0.002  ms/op
BatchIteratorBenchmark.batchIterate           512          0.1      64          0.1  avgt    5     0.526 ±   0.019  ms/op
BatchIteratorBenchmark.batchIterate           512          0.1      64         0.25  avgt    5     0.863 ±   0.031  ms/op
BatchIteratorBenchmark.batchIterate           512          0.1      64          0.5  avgt    5     1.416 ±   0.053  ms/op
BatchIteratorBenchmark.batchIterate           512          0.1     128          0.1  avgt    5     1.260 ±   0.098  ms/op
BatchIteratorBenchmark.batchIterate           512          0.1     128         0.25  avgt    5     1.841 ±   0.062  ms/op
BatchIteratorBenchmark.batchIterate           512          0.1     128          0.5  avgt    5     3.144 ±   0.132  ms/op
BatchIteratorBenchmark.batchIterate           512          0.1     256          0.1  avgt    5     2.097 ±   0.077  ms/op
BatchIteratorBenchmark.batchIterate           512          0.1     256         0.25  avgt    5     3.390 ±   0.122  ms/op
BatchIteratorBenchmark.batchIterate           512          0.1     256          0.5  avgt    5     7.022 ±   0.237  ms/op
BatchIteratorBenchmark.batchIterate           512          0.1     512          0.1  avgt    5     4.179 ±   1.470  ms/op
BatchIteratorBenchmark.batchIterate           512          0.1     512         0.25  avgt    5     8.076 ±   1.423  ms/op
BatchIteratorBenchmark.batchIterate           512          0.1     512          0.5  avgt    5    14.092 ±   0.607  ms/op
BatchIteratorBenchmark.batchIterate           512          0.1    1024          0.1  avgt    5     7.541 ±   0.565  ms/op
BatchIteratorBenchmark.batchIterate           512          0.1    1024         0.25  avgt    5    16.769 ±   0.957  ms/op
BatchIteratorBenchmark.batchIterate           512          0.1    1024          0.5  avgt    5    27.941 ±   0.816  ms/op
BatchIteratorBenchmark.batchIterate           512          0.1    2096          0.1  avgt    5    15.823 ±   0.699  ms/op
BatchIteratorBenchmark.batchIterate           512          0.1    2096         0.25  avgt    5    35.223 ±   1.593  ms/op
BatchIteratorBenchmark.batchIterate           512          0.1    2096          0.5  avgt    5    51.921 ±   2.282  ms/op
BatchIteratorBenchmark.batchIterate           512          0.1    4096          0.1  avgt    5    33.015 ±   0.993  ms/op
BatchIteratorBenchmark.batchIterate           512          0.1    4096         0.25  avgt    5    59.997 ±   2.584  ms/op
BatchIteratorBenchmark.batchIterate           512          0.1    4096          0.5  avgt    5    97.313 ±   2.925  ms/op
BatchIteratorBenchmark.batchIterate           512          0.1    8192          0.1  avgt    5    76.051 ±   2.282  ms/op
BatchIteratorBenchmark.batchIterate           512          0.1    8192         0.25  avgt    5   126.180 ±   4.288  ms/op
BatchIteratorBenchmark.batchIterate           512          0.1    8192          0.5  avgt    5   212.519 ±   7.089  ms/op
BatchIteratorBenchmark.batchIterate           512          0.1   16384          0.1  avgt    5   146.238 ±   4.916  ms/op
BatchIteratorBenchmark.batchIterate           512          0.1   16384         0.25  avgt    5   246.999 ±   9.826  ms/op
BatchIteratorBenchmark.batchIterate           512          0.1   16384          0.5  avgt    5   432.681 ±  12.311  ms/op
BatchIteratorBenchmark.batchIterate           512         0.25       8          0.1  avgt    5     0.084 ±   0.036  ms/op
BatchIteratorBenchmark.batchIterate           512         0.25       8         0.25  avgt    5     0.026 ±   0.002  ms/op
BatchIteratorBenchmark.batchIterate           512         0.25       8          0.5  avgt    5     0.167 ±   0.003  ms/op
BatchIteratorBenchmark.batchIterate           512         0.25      64          0.1  avgt    5     1.334 ±   0.016  ms/op
BatchIteratorBenchmark.batchIterate           512         0.25      64         0.25  avgt    5     1.051 ±   0.019  ms/op
BatchIteratorBenchmark.batchIterate           512         0.25      64          0.5  avgt    5     1.733 ±   0.088  ms/op
BatchIteratorBenchmark.batchIterate           512         0.25     128          0.1  avgt    5     1.989 ±   0.100  ms/op
BatchIteratorBenchmark.batchIterate           512         0.25     128         0.25  avgt    5     2.147 ±   0.096  ms/op
BatchIteratorBenchmark.batchIterate           512         0.25     128          0.5  avgt    5     2.757 ±   0.110  ms/op
BatchIteratorBenchmark.batchIterate           512         0.25     256          0.1  avgt    5     3.725 ±   0.143  ms/op
BatchIteratorBenchmark.batchIterate           512         0.25     256         0.25  avgt    5     3.221 ±   0.059  ms/op
BatchIteratorBenchmark.batchIterate           512         0.25     256          0.5  avgt    5     5.554 ±   0.147  ms/op
BatchIteratorBenchmark.batchIterate           512         0.25     512          0.1  avgt    5     7.327 ±   0.287  ms/op
BatchIteratorBenchmark.batchIterate           512         0.25     512         0.25  avgt    5     7.104 ±   0.149  ms/op
BatchIteratorBenchmark.batchIterate           512         0.25     512          0.5  avgt    5    12.843 ±   0.707  ms/op
BatchIteratorBenchmark.batchIterate           512         0.25    1024          0.1  avgt    5    14.933 ±   0.597  ms/op
BatchIteratorBenchmark.batchIterate           512         0.25    1024         0.25  avgt    5    16.202 ±   0.430  ms/op
BatchIteratorBenchmark.batchIterate           512         0.25    1024          0.5  avgt    5    27.951 ±   0.692  ms/op
BatchIteratorBenchmark.batchIterate           512         0.25    2096          0.1  avgt    5    29.866 ±   1.610  ms/op
BatchIteratorBenchmark.batchIterate           512         0.25    2096         0.25  avgt    5    33.714 ±   2.668  ms/op
BatchIteratorBenchmark.batchIterate           512         0.25    2096          0.5  avgt    5    59.165 ±   0.909  ms/op
BatchIteratorBenchmark.batchIterate           512         0.25    4096          0.1  avgt    5    57.433 ±   0.497  ms/op
BatchIteratorBenchmark.batchIterate           512         0.25    4096         0.25  avgt    5    60.498 ±   1.597  ms/op
BatchIteratorBenchmark.batchIterate           512         0.25    4096          0.5  avgt    5    96.900 ±   2.483  ms/op
BatchIteratorBenchmark.batchIterate           512         0.25    8192          0.1  avgt    5   119.083 ±   2.665  ms/op
BatchIteratorBenchmark.batchIterate           512         0.25    8192         0.25  avgt    5   128.075 ±   4.080  ms/op
BatchIteratorBenchmark.batchIterate           512         0.25    8192          0.5  avgt    5   211.427 ±  11.380  ms/op
BatchIteratorBenchmark.batchIterate           512         0.25   16384          0.1  avgt    5   231.948 ±  10.473  ms/op
BatchIteratorBenchmark.batchIterate           512         0.25   16384         0.25  avgt    5   249.370 ±  14.080  ms/op
BatchIteratorBenchmark.batchIterate           512         0.25   16384          0.5  avgt    5   428.048 ±  15.808  ms/op
BatchIteratorBenchmark.batchIterate           512          0.5       8          0.1  avgt    5     0.248 ±   0.007  ms/op
BatchIteratorBenchmark.batchIterate           512          0.5       8         0.25  avgt    5     0.202 ±   0.012  ms/op
BatchIteratorBenchmark.batchIterate           512          0.5       8          0.5  avgt    5     0.106 ±   0.001  ms/op
BatchIteratorBenchmark.batchIterate           512          0.5      64          0.1  avgt    5     1.959 ±   0.713  ms/op
BatchIteratorBenchmark.batchIterate           512          0.5      64         0.25  avgt    5     1.815 ±   0.265  ms/op
BatchIteratorBenchmark.batchIterate           512          0.5      64          0.5  avgt    5     2.116 ±   0.060  ms/op
BatchIteratorBenchmark.batchIterate           512          0.5     128          0.1  avgt    5     3.256 ±   0.068  ms/op
BatchIteratorBenchmark.batchIterate           512          0.5     128         0.25  avgt    5     2.937 ±   0.068  ms/op
BatchIteratorBenchmark.batchIterate           512          0.5     128          0.5  avgt    5     3.386 ±   0.084  ms/op
BatchIteratorBenchmark.batchIterate           512          0.5     256          0.1  avgt    5     6.618 ±   0.278  ms/op
BatchIteratorBenchmark.batchIterate           512          0.5     256         0.25  avgt    5     6.208 ±   0.126  ms/op
BatchIteratorBenchmark.batchIterate           512          0.5     256          0.5  avgt    5     7.316 ±   0.442  ms/op
BatchIteratorBenchmark.batchIterate           512          0.5     512          0.1  avgt    5    12.941 ±   0.306  ms/op
BatchIteratorBenchmark.batchIterate           512          0.5     512         0.25  avgt    5    13.555 ±   0.331  ms/op
BatchIteratorBenchmark.batchIterate           512          0.5     512          0.5  avgt    5    14.791 ±   0.581  ms/op
BatchIteratorBenchmark.batchIterate           512          0.5    1024          0.1  avgt    5    25.099 ±   1.229  ms/op
BatchIteratorBenchmark.batchIterate           512          0.5    1024         0.25  avgt    5    25.479 ±   1.212  ms/op
BatchIteratorBenchmark.batchIterate           512          0.5    1024          0.5  avgt    5    28.166 ±   0.896  ms/op
BatchIteratorBenchmark.batchIterate           512          0.5    2096          0.1  avgt    5    51.317 ±   1.701  ms/op
BatchIteratorBenchmark.batchIterate           512          0.5    2096         0.25  avgt    5    51.411 ±   2.004  ms/op
BatchIteratorBenchmark.batchIterate           512          0.5    2096          0.5  avgt    5    52.088 ±   2.045  ms/op
BatchIteratorBenchmark.batchIterate           512          0.5    4096          0.1  avgt    5   102.025 ±   8.688  ms/op
BatchIteratorBenchmark.batchIterate           512          0.5    4096         0.25  avgt    5   101.422 ±   3.809  ms/op
BatchIteratorBenchmark.batchIterate           512          0.5    4096          0.5  avgt    5   107.872 ±   4.380  ms/op
BatchIteratorBenchmark.batchIterate           512          0.5    8192          0.1  avgt    5   205.837 ±   2.359  ms/op
BatchIteratorBenchmark.batchIterate           512          0.5    8192         0.25  avgt    5   206.047 ±   7.326  ms/op
BatchIteratorBenchmark.batchIterate           512          0.5    8192          0.5  avgt    5   214.479 ±   6.935  ms/op
BatchIteratorBenchmark.batchIterate           512          0.5   16384          0.1  avgt    5   413.954 ±  13.625  ms/op
BatchIteratorBenchmark.batchIterate           512          0.5   16384         0.25  avgt    5   414.757 ±  13.727  ms/op
BatchIteratorBenchmark.batchIterate           512          0.5   16384          0.5  avgt    5   431.240 ±  13.939  ms/op
BatchIteratorBenchmark.iterate                 64          0.1       8          0.1  avgt    5     0.312 ±   0.042  ms/op
BatchIteratorBenchmark.iterate                 64          0.1       8         0.25  avgt    5     0.340 ±   0.033  ms/op
BatchIteratorBenchmark.iterate                 64          0.1       8          0.5  avgt    5     0.482 ±   0.008  ms/op
BatchIteratorBenchmark.iterate                 64          0.1      64          0.1  avgt    5     1.139 ±   0.054  ms/op
BatchIteratorBenchmark.iterate                 64          0.1      64         0.25  avgt    5     2.985 ±   0.227  ms/op
BatchIteratorBenchmark.iterate                 64          0.1      64          0.5  avgt    5     4.430 ±   0.126  ms/op
BatchIteratorBenchmark.iterate                 64          0.1     128          0.1  avgt    5     3.455 ±   0.066  ms/op
BatchIteratorBenchmark.iterate                 64          0.1     128         0.25  avgt    5     4.757 ±   0.295  ms/op
BatchIteratorBenchmark.iterate                 64          0.1     128          0.5  avgt    5     9.161 ±   0.223  ms/op
BatchIteratorBenchmark.iterate                 64          0.1     256          0.1  avgt    5     3.514 ±   0.140  ms/op
BatchIteratorBenchmark.iterate                 64          0.1     256         0.25  avgt    5    11.467 ±   0.635  ms/op
BatchIteratorBenchmark.iterate                 64          0.1     256          0.5  avgt    5    17.770 ±   0.634  ms/op
BatchIteratorBenchmark.iterate                 64          0.1     512          0.1  avgt    5    10.449 ±   0.561  ms/op
BatchIteratorBenchmark.iterate                 64          0.1     512         0.25  avgt    5    24.495 ±   0.565  ms/op
BatchIteratorBenchmark.iterate                 64          0.1     512          0.5  avgt    5    35.863 ±   1.639  ms/op
BatchIteratorBenchmark.iterate                 64          0.1    1024          0.1  avgt    5    21.935 ±   0.340  ms/op
BatchIteratorBenchmark.iterate                 64          0.1    1024         0.25  avgt    5    41.271 ±   1.456  ms/op
BatchIteratorBenchmark.iterate                 64          0.1    1024          0.5  avgt    5    76.914 ±   2.396  ms/op
BatchIteratorBenchmark.iterate                 64          0.1    2096          0.1  avgt    5    44.357 ±   1.747  ms/op
BatchIteratorBenchmark.iterate                 64          0.1    2096         0.25  avgt    5    87.045 ±   3.435  ms/op
BatchIteratorBenchmark.iterate                 64          0.1    2096          0.5  avgt    5   158.833 ±   3.991  ms/op
BatchIteratorBenchmark.iterate                 64          0.1    4096          0.1  avgt    5    85.486 ±   3.591  ms/op
BatchIteratorBenchmark.iterate                 64          0.1    4096         0.25  avgt    5   171.732 ±   8.711  ms/op
BatchIteratorBenchmark.iterate                 64          0.1    4096          0.5  avgt    5   290.194 ±   5.397  ms/op
BatchIteratorBenchmark.iterate                 64          0.1    8192          0.1  avgt    5   183.880 ±   3.719  ms/op
BatchIteratorBenchmark.iterate                 64          0.1    8192         0.25  avgt    5   326.683 ±  20.797  ms/op
BatchIteratorBenchmark.iterate                 64          0.1    8192          0.5  avgt    5   600.312 ±  25.644  ms/op
BatchIteratorBenchmark.iterate                 64          0.1   16384          0.1  avgt    5   366.544 ±   6.396  ms/op
BatchIteratorBenchmark.iterate                 64          0.1   16384         0.25  avgt    5   666.766 ±  50.123  ms/op
BatchIteratorBenchmark.iterate                 64          0.1   16384          0.5  avgt    5  1183.331 ±  55.097  ms/op
BatchIteratorBenchmark.iterate                 64         0.25       8          0.1  avgt    5     2.182 ±   0.183  ms/op
BatchIteratorBenchmark.iterate                 64         0.25       8         0.25  avgt    5     0.337 ±   0.014  ms/op
BatchIteratorBenchmark.iterate                 64         0.25       8          0.5  avgt    5     0.688 ±   0.009  ms/op
BatchIteratorBenchmark.iterate                 64         0.25      64          0.1  avgt    5     7.035 ±   0.231  ms/op
BatchIteratorBenchmark.iterate                 64         0.25      64         0.25  avgt    5     2.933 ±   0.078  ms/op
BatchIteratorBenchmark.iterate                 64         0.25      64          0.5  avgt    5     4.813 ±   0.424  ms/op
BatchIteratorBenchmark.iterate                 64         0.25     128          0.1  avgt    5    13.336 ±   0.573  ms/op
BatchIteratorBenchmark.iterate                 64         0.25     128         0.25  avgt    5     4.512 ±   0.146  ms/op
BatchIteratorBenchmark.iterate                 64         0.25     128          0.5  avgt    5     9.743 ±   0.597  ms/op
BatchIteratorBenchmark.iterate                 64         0.25     256          0.1  avgt    5    29.820 ±   2.770  ms/op
BatchIteratorBenchmark.iterate                 64         0.25     256         0.25  avgt    5    11.176 ±   0.393  ms/op
BatchIteratorBenchmark.iterate                 64         0.25     256          0.5  avgt    5    18.659 ±   0.834  ms/op
BatchIteratorBenchmark.iterate                 64         0.25     512          0.1  avgt    5    59.859 ±   1.256  ms/op
BatchIteratorBenchmark.iterate                 64         0.25     512         0.25  avgt    5    20.861 ±   0.923  ms/op
BatchIteratorBenchmark.iterate                 64         0.25     512          0.5  avgt    5    37.567 ±   1.270  ms/op
BatchIteratorBenchmark.iterate                 64         0.25    1024          0.1  avgt    5   134.230 ±   5.676  ms/op
BatchIteratorBenchmark.iterate                 64         0.25    1024         0.25  avgt    5    42.424 ±   1.272  ms/op
BatchIteratorBenchmark.iterate                 64         0.25    1024          0.5  avgt    5    76.248 ±   2.042  ms/op
BatchIteratorBenchmark.iterate                 64         0.25    2096          0.1  avgt    5   245.195 ±   4.595  ms/op
BatchIteratorBenchmark.iterate                 64         0.25    2096         0.25  avgt    5    90.908 ±   7.183  ms/op
BatchIteratorBenchmark.iterate                 64         0.25    2096          0.5  avgt    5   153.582 ±   3.942  ms/op
BatchIteratorBenchmark.iterate                 64         0.25    4096          0.1  avgt    5   480.393 ±  11.906  ms/op
BatchIteratorBenchmark.iterate                 64         0.25    4096         0.25  avgt    5   167.589 ±   3.956  ms/op
BatchIteratorBenchmark.iterate                 64         0.25    4096          0.5  avgt    5   292.883 ±  16.433  ms/op
BatchIteratorBenchmark.iterate                 64         0.25    8192          0.1  avgt    5   984.245 ±  50.040  ms/op
BatchIteratorBenchmark.iterate                 64         0.25    8192         0.25  avgt    5   336.999 ±  42.824  ms/op
BatchIteratorBenchmark.iterate                 64         0.25    8192          0.5  avgt    5   604.677 ±  16.429  ms/op
BatchIteratorBenchmark.iterate                 64         0.25   16384          0.1  avgt    5  2044.291 ±  59.450  ms/op
BatchIteratorBenchmark.iterate                 64         0.25   16384         0.25  avgt    5   659.828 ±  27.343  ms/op
BatchIteratorBenchmark.iterate                 64         0.25   16384          0.5  avgt    5  1169.812 ±  64.697  ms/op
BatchIteratorBenchmark.iterate                 64          0.5       8          0.1  avgt    5     0.473 ±   0.011  ms/op
BatchIteratorBenchmark.iterate                 64          0.5       8         0.25  avgt    5     0.973 ±   0.036  ms/op
BatchIteratorBenchmark.iterate                 64          0.5       8          0.5  avgt    5     0.728 ±   0.041  ms/op
BatchIteratorBenchmark.iterate                 64          0.5      64          0.1  avgt    5    11.976 ±   0.630  ms/op
BatchIteratorBenchmark.iterate                 64          0.5      64         0.25  avgt    5    16.416 ±   1.309  ms/op
BatchIteratorBenchmark.iterate                 64          0.5      64          0.5  avgt    5     4.327 ±   0.237  ms/op
BatchIteratorBenchmark.iterate                 64          0.5     128          0.1  avgt    5    24.785 ±   1.184  ms/op
BatchIteratorBenchmark.iterate                 64          0.5     128         0.25  avgt    5    25.249 ±   2.234  ms/op
BatchIteratorBenchmark.iterate                 64          0.5     128          0.5  avgt    5     8.662 ±   0.340  ms/op
BatchIteratorBenchmark.iterate                 64          0.5     256          0.1  avgt    5    55.265 ±   3.702  ms/op
BatchIteratorBenchmark.iterate                 64          0.5     256         0.25  avgt    5    59.899 ±   2.403  ms/op
BatchIteratorBenchmark.iterate                 64          0.5     256          0.5  avgt    5    19.800 ±   0.550  ms/op
BatchIteratorBenchmark.iterate                 64          0.5     512          0.1  avgt    5   111.645 ±   5.058  ms/op
BatchIteratorBenchmark.iterate                 64          0.5     512         0.25  avgt    5   124.194 ±   7.154  ms/op
BatchIteratorBenchmark.iterate                 64          0.5     512          0.5  avgt    5    37.711 ±   1.492  ms/op
BatchIteratorBenchmark.iterate                 64          0.5    1024          0.1  avgt    5   233.839 ±  10.931  ms/op
BatchIteratorBenchmark.iterate                 64          0.5    1024         0.25  avgt    5   230.620 ±   8.005  ms/op
BatchIteratorBenchmark.iterate                 64          0.5    1024          0.5  avgt    5    73.121 ±   3.227  ms/op
BatchIteratorBenchmark.iterate                 64          0.5    2096          0.1  avgt    5   468.493 ±  55.548  ms/op
BatchIteratorBenchmark.iterate                 64          0.5    2096         0.25  avgt    5   468.658 ±   9.182  ms/op
BatchIteratorBenchmark.iterate                 64          0.5    2096          0.5  avgt    5   108.269 ±   3.625  ms/op
BatchIteratorBenchmark.iterate                 64          0.5    4096          0.1  avgt    5   937.352 ±  26.899  ms/op
BatchIteratorBenchmark.iterate                 64          0.5    4096         0.25  avgt    5   909.412 ±  25.296  ms/op
BatchIteratorBenchmark.iterate                 64          0.5    4096          0.5  avgt    5   296.524 ±  15.730  ms/op
BatchIteratorBenchmark.iterate                 64          0.5    8192          0.1  avgt    5  1840.722 ±  35.834  ms/op
BatchIteratorBenchmark.iterate                 64          0.5    8192         0.25  avgt    5  1830.632 ±  53.173  ms/op
BatchIteratorBenchmark.iterate                 64          0.5    8192          0.5  avgt    5   599.860 ±  20.764  ms/op
BatchIteratorBenchmark.iterate                 64          0.5   16384          0.1  avgt    5  3701.117 ±  51.441  ms/op
BatchIteratorBenchmark.iterate                 64          0.5   16384         0.25  avgt    5  3622.265 ±  80.350  ms/op
BatchIteratorBenchmark.iterate                 64          0.5   16384          0.5  avgt    5  1201.027 ±  38.082  ms/op
BatchIteratorBenchmark.iterate                128          0.1       8          0.1  avgt    5     0.044 ±   0.040  ms/op
BatchIteratorBenchmark.iterate                128          0.1       8         0.25  avgt    5     0.442 ±   0.013  ms/op
BatchIteratorBenchmark.iterate                128          0.1       8          0.5  avgt    5     0.907 ±   0.027  ms/op
BatchIteratorBenchmark.iterate                128          0.1      64          0.1  avgt    5     1.340 ±   0.034  ms/op
BatchIteratorBenchmark.iterate                128          0.1      64         0.25  avgt    5     2.487 ±   0.077  ms/op
BatchIteratorBenchmark.iterate                128          0.1      64          0.5  avgt    5     4.303 ±   0.097  ms/op
BatchIteratorBenchmark.iterate                128          0.1     128          0.1  avgt    5     1.842 ±   0.129  ms/op
BatchIteratorBenchmark.iterate                128          0.1     128         0.25  avgt    5     4.591 ±   0.158  ms/op
BatchIteratorBenchmark.iterate                128          0.1     128          0.5  avgt    5     8.662 ±   0.548  ms/op
BatchIteratorBenchmark.iterate                128          0.1     256          0.1  avgt    5     6.689 ±   0.449  ms/op
BatchIteratorBenchmark.iterate                128          0.1     256         0.25  avgt    5    11.279 ±   0.392  ms/op
BatchIteratorBenchmark.iterate                128          0.1     256          0.5  avgt    5    18.456 ±   0.545  ms/op
BatchIteratorBenchmark.iterate                128          0.1     512          0.1  avgt    5    10.830 ±   0.258  ms/op
BatchIteratorBenchmark.iterate                128          0.1     512         0.25  avgt    5    23.243 ±   1.275  ms/op
BatchIteratorBenchmark.iterate                128          0.1     512          0.5  avgt    5    36.120 ±   1.053  ms/op
BatchIteratorBenchmark.iterate                128          0.1    1024          0.1  avgt    5    20.905 ±   1.483  ms/op
BatchIteratorBenchmark.iterate                128          0.1    1024         0.25  avgt    5    41.903 ±   1.593  ms/op
BatchIteratorBenchmark.iterate                128          0.1    1024          0.5  avgt    5    71.410 ±   2.756  ms/op
BatchIteratorBenchmark.iterate                128          0.1    2096          0.1  avgt    5    46.770 ±   1.665  ms/op
BatchIteratorBenchmark.iterate                128          0.1    2096         0.25  avgt    5    88.392 ±   3.469  ms/op
BatchIteratorBenchmark.iterate                128          0.1    2096          0.5  avgt    5   151.777 ±   2.839  ms/op
BatchIteratorBenchmark.iterate                128          0.1    4096          0.1  avgt    5    90.444 ±   3.290  ms/op
BatchIteratorBenchmark.iterate                128          0.1    4096         0.25  avgt    5   159.885 ±   3.518  ms/op
BatchIteratorBenchmark.iterate                128          0.1    4096          0.5  avgt    5   296.700 ±  14.386  ms/op
BatchIteratorBenchmark.iterate                128          0.1    8192          0.1  avgt    5   180.745 ±   7.806  ms/op
BatchIteratorBenchmark.iterate                128          0.1    8192         0.25  avgt    5   339.439 ±  13.562  ms/op
BatchIteratorBenchmark.iterate                128          0.1    8192          0.5  avgt    5   609.962 ±  78.885  ms/op
BatchIteratorBenchmark.iterate                128          0.1   16384          0.1  avgt    5   365.264 ±  16.326  ms/op
BatchIteratorBenchmark.iterate                128          0.1   16384         0.25  avgt    5   663.558 ±  40.804  ms/op
BatchIteratorBenchmark.iterate                128          0.1   16384          0.5  avgt    5  1171.356 ±  21.165  ms/op
BatchIteratorBenchmark.iterate                128         0.25       8          0.1  avgt    5     0.062 ±   0.051  ms/op
BatchIteratorBenchmark.iterate                128         0.25       8         0.25  avgt    5     0.202 ±   0.013  ms/op
BatchIteratorBenchmark.iterate                128         0.25       8          0.5  avgt    5     0.327 ±   0.005  ms/op
BatchIteratorBenchmark.iterate                128         0.25      64          0.1  avgt    5     7.427 ±   0.342  ms/op
BatchIteratorBenchmark.iterate                128         0.25      64         0.25  avgt    5     2.841 ±   0.112  ms/op
BatchIteratorBenchmark.iterate                128         0.25      64          0.5  avgt    5     5.185 ±   0.245  ms/op
BatchIteratorBenchmark.iterate                128         0.25     128          0.1  avgt    5    16.466 ±   0.726  ms/op
BatchIteratorBenchmark.iterate                128         0.25     128         0.25  avgt    5     4.874 ±   0.146  ms/op
BatchIteratorBenchmark.iterate                128         0.25     128          0.5  avgt    5     8.679 ±   0.304  ms/op
BatchIteratorBenchmark.iterate                128         0.25     256          0.1  avgt    5    34.266 ±   1.373  ms/op
BatchIteratorBenchmark.iterate                128         0.25     256         0.25  avgt    5    10.392 ±   0.413  ms/op
BatchIteratorBenchmark.iterate                128         0.25     256          0.5  avgt    5    18.224 ±   0.231  ms/op
BatchIteratorBenchmark.iterate                128         0.25     512          0.1  avgt    5    69.226 ±   1.717  ms/op
BatchIteratorBenchmark.iterate                128         0.25     512         0.25  avgt    5    21.837 ±   0.827  ms/op
BatchIteratorBenchmark.iterate                128         0.25     512          0.5  avgt    5    36.577 ±   0.710  ms/op
BatchIteratorBenchmark.iterate                128         0.25    1024          0.1  avgt    5   120.326 ±   4.905  ms/op
BatchIteratorBenchmark.iterate                128         0.25    1024         0.25  avgt    5    40.122 ±   1.542  ms/op
BatchIteratorBenchmark.iterate                128         0.25    1024          0.5  avgt    5    75.662 ±   5.048  ms/op
BatchIteratorBenchmark.iterate                128         0.25    2096          0.1  avgt    5   257.458 ±  28.849  ms/op
BatchIteratorBenchmark.iterate                128         0.25    2096         0.25  avgt    5    88.392 ±   5.916  ms/op
BatchIteratorBenchmark.iterate                128         0.25    2096          0.5  avgt    5   148.266 ±   7.930  ms/op
BatchIteratorBenchmark.iterate                128         0.25    4096          0.1  avgt    5   516.933 ±  21.097  ms/op
BatchIteratorBenchmark.iterate                128         0.25    4096         0.25  avgt    5   163.908 ±  12.203  ms/op
BatchIteratorBenchmark.iterate                128         0.25    4096          0.5  avgt    5   222.236 ±  22.057  ms/op
BatchIteratorBenchmark.iterate                128         0.25    8192          0.1  avgt    5  1005.473 ±  19.211  ms/op
BatchIteratorBenchmark.iterate                128         0.25    8192         0.25  avgt    5   336.952 ±  33.234  ms/op
BatchIteratorBenchmark.iterate                128         0.25    8192          0.5  avgt    5   623.375 ±  20.508  ms/op
BatchIteratorBenchmark.iterate                128         0.25   16384          0.1  avgt    5  2050.185 ±  60.232  ms/op
BatchIteratorBenchmark.iterate                128         0.25   16384         0.25  avgt    5   673.951 ±  25.913  ms/op
BatchIteratorBenchmark.iterate                128         0.25   16384          0.5  avgt    5  1183.060 ±  27.510  ms/op
BatchIteratorBenchmark.iterate                128          0.5       8          0.1  avgt    5     2.373 ±   0.125  ms/op
BatchIteratorBenchmark.iterate                128          0.5       8         0.25  avgt    5     2.070 ±   0.074  ms/op
BatchIteratorBenchmark.iterate                128          0.5       8          0.5  avgt    5     0.733 ±   0.022  ms/op
BatchIteratorBenchmark.iterate                128          0.5      64          0.1  avgt    5    16.064 ±   0.868  ms/op
BatchIteratorBenchmark.iterate                128          0.5      64         0.25  avgt    5    15.406 ±   0.787  ms/op
BatchIteratorBenchmark.iterate                128          0.5      64          0.5  avgt    5     5.184 ±   0.315  ms/op
BatchIteratorBenchmark.iterate                128          0.5     128          0.1  avgt    5    30.843 ±   0.612  ms/op
BatchIteratorBenchmark.iterate                128          0.5     128         0.25  avgt    5    26.845 ±   1.186  ms/op
BatchIteratorBenchmark.iterate                128          0.5     128          0.5  avgt    5    10.019 ±   0.772  ms/op
BatchIteratorBenchmark.iterate                128          0.5     256          0.1  avgt    5    57.268 ±   1.653  ms/op
BatchIteratorBenchmark.iterate                128          0.5     256         0.25  avgt    5    56.532 ±   7.884  ms/op
BatchIteratorBenchmark.iterate                128          0.5     256          0.5  avgt    5    18.422 ±   0.849  ms/op
BatchIteratorBenchmark.iterate                128          0.5     512          0.1  avgt    5   127.170 ±   7.188  ms/op
BatchIteratorBenchmark.iterate                128          0.5     512         0.25  avgt    5   118.990 ±   7.535  ms/op
BatchIteratorBenchmark.iterate                128          0.5     512          0.5  avgt    5    36.550 ±   1.388  ms/op
BatchIteratorBenchmark.iterate                128          0.5    1024          0.1  avgt    5   243.360 ±   9.428  ms/op
BatchIteratorBenchmark.iterate                128          0.5    1024         0.25  avgt    5   229.253 ±  11.963  ms/op
BatchIteratorBenchmark.iterate                128          0.5    1024          0.5  avgt    5    77.391 ±   2.941  ms/op
BatchIteratorBenchmark.iterate                128          0.5    2096          0.1  avgt    5   466.523 ±  21.988  ms/op
BatchIteratorBenchmark.iterate                128          0.5    2096         0.25  avgt    5   447.521 ±  22.907  ms/op
BatchIteratorBenchmark.iterate                128          0.5    2096          0.5  avgt    5   152.678 ±   5.475  ms/op
BatchIteratorBenchmark.iterate                128          0.5    4096          0.1  avgt    5   941.818 ±  31.323  ms/op
BatchIteratorBenchmark.iterate                128          0.5    4096         0.25  avgt    5   927.460 ± 201.829  ms/op
BatchIteratorBenchmark.iterate                128          0.5    4096          0.5  avgt    5   302.948 ±   9.698  ms/op
BatchIteratorBenchmark.iterate                128          0.5    8192          0.1  avgt    5  1852.784 ±  46.872  ms/op
BatchIteratorBenchmark.iterate                128          0.5    8192         0.25  avgt    5  1794.705 ±  34.277  ms/op
BatchIteratorBenchmark.iterate                128          0.5    8192          0.5  avgt    5   598.854 ±  11.212  ms/op
BatchIteratorBenchmark.iterate                128          0.5   16384          0.1  avgt    5  3711.508 ± 305.953  ms/op
BatchIteratorBenchmark.iterate                128          0.5   16384         0.25  avgt    5  3616.958 ±  61.760  ms/op
BatchIteratorBenchmark.iterate                128          0.5   16384          0.5  avgt    5  1253.545 ±  54.596  ms/op
BatchIteratorBenchmark.iterate                256          0.1       8          0.1  avgt    5     0.195 ±   0.004  ms/op
BatchIteratorBenchmark.iterate                256          0.1       8         0.25  avgt    5     0.070 ±   0.042  ms/op
BatchIteratorBenchmark.iterate                256          0.1       8          0.5  avgt    5     0.530 ±   0.012  ms/op
BatchIteratorBenchmark.iterate                256          0.1      64          0.1  avgt    5     1.250 ±   0.039  ms/op
BatchIteratorBenchmark.iterate                256          0.1      64         0.25  avgt    5     3.169 ±   0.141  ms/op
BatchIteratorBenchmark.iterate                256          0.1      64          0.5  avgt    5     4.964 ±   0.131  ms/op
BatchIteratorBenchmark.iterate                256          0.1     128          0.1  avgt    5     2.792 ±   0.173  ms/op
BatchIteratorBenchmark.iterate                256          0.1     128         0.25  avgt    5     6.104 ±   0.221  ms/op
BatchIteratorBenchmark.iterate                256          0.1     128          0.5  avgt    5     9.939 ±   0.270  ms/op
BatchIteratorBenchmark.iterate                256          0.1     256          0.1  avgt    5     6.210 ±   0.228  ms/op
BatchIteratorBenchmark.iterate                256          0.1     256         0.25  avgt    5    10.048 ±   0.412  ms/op
BatchIteratorBenchmark.iterate                256          0.1     256          0.5  avgt    5    18.289 ±   1.018  ms/op
BatchIteratorBenchmark.iterate                256          0.1     512          0.1  avgt    5     9.879 ±   0.341  ms/op
BatchIteratorBenchmark.iterate                256          0.1     512         0.25  avgt    5    19.610 ±   1.221  ms/op
BatchIteratorBenchmark.iterate                256          0.1     512          0.5  avgt    5    37.943 ±   1.143  ms/op
BatchIteratorBenchmark.iterate                256          0.1    1024          0.1  avgt    5    22.936 ±   0.929  ms/op
BatchIteratorBenchmark.iterate                256          0.1    1024         0.25  avgt    5    41.489 ±   2.233  ms/op
BatchIteratorBenchmark.iterate                256          0.1    1024          0.5  avgt    5    74.032 ±   3.133  ms/op
BatchIteratorBenchmark.iterate                256          0.1    2096          0.1  avgt    5    47.194 ±   3.539  ms/op
BatchIteratorBenchmark.iterate                256          0.1    2096         0.25  avgt    5    82.720 ±   4.488  ms/op
BatchIteratorBenchmark.iterate                256          0.1    2096          0.5  avgt    5   154.058 ±   5.400  ms/op
BatchIteratorBenchmark.iterate                256          0.1    4096          0.1  avgt    5    84.741 ±   3.647  ms/op
BatchIteratorBenchmark.iterate                256          0.1    4096         0.25  avgt    5   162.959 ±   6.142  ms/op
BatchIteratorBenchmark.iterate                256          0.1    4096          0.5  avgt    5   297.307 ±  12.675  ms/op
BatchIteratorBenchmark.iterate                256          0.1    8192          0.1  avgt    5   179.872 ±  12.725  ms/op
BatchIteratorBenchmark.iterate                256          0.1    8192         0.25  avgt    5   328.870 ±   8.504  ms/op
BatchIteratorBenchmark.iterate                256          0.1    8192          0.5  avgt    5   623.226 ±  28.277  ms/op
BatchIteratorBenchmark.iterate                256          0.1   16384          0.1  avgt    5   363.854 ±   4.032  ms/op
BatchIteratorBenchmark.iterate                256          0.1   16384         0.25  avgt    5   682.743 ± 113.572  ms/op
BatchIteratorBenchmark.iterate                256          0.1   16384          0.5  avgt    5  1202.340 ±  48.506  ms/op
BatchIteratorBenchmark.iterate                256         0.25       8          0.1  avgt    5     1.392 ±   0.130  ms/op
BatchIteratorBenchmark.iterate                256         0.25       8         0.25  avgt    5     0.457 ±   0.014  ms/op
BatchIteratorBenchmark.iterate                256         0.25       8          0.5  avgt    5     0.810 ±   0.024  ms/op
BatchIteratorBenchmark.iterate                256         0.25      64          0.1  avgt    5     7.945 ±   0.425  ms/op
BatchIteratorBenchmark.iterate                256         0.25      64         0.25  avgt    5     2.813 ±   0.086  ms/op
BatchIteratorBenchmark.iterate                256         0.25      64          0.5  avgt    5     5.601 ±   0.224  ms/op
BatchIteratorBenchmark.iterate                256         0.25     128          0.1  avgt    5    16.047 ±   0.441  ms/op
BatchIteratorBenchmark.iterate                256         0.25     128         0.25  avgt    5     5.219 ±   0.193  ms/op
BatchIteratorBenchmark.iterate                256         0.25     128          0.5  avgt    5     8.993 ±   0.324  ms/op
BatchIteratorBenchmark.iterate                256         0.25     256          0.1  avgt    5    29.723 ±   1.849  ms/op
BatchIteratorBenchmark.iterate                256         0.25     256         0.25  avgt    5    10.832 ±   0.675  ms/op
BatchIteratorBenchmark.iterate                256         0.25     256          0.5  avgt    5    19.451 ±   1.268  ms/op
BatchIteratorBenchmark.iterate                256         0.25     512          0.1  avgt    5    61.748 ±   1.912  ms/op
BatchIteratorBenchmark.iterate                256         0.25     512         0.25  avgt    5    21.207 ±   1.044  ms/op
BatchIteratorBenchmark.iterate                256         0.25     512          0.5  avgt    5    35.724 ±   0.645  ms/op
BatchIteratorBenchmark.iterate                256         0.25    1024          0.1  avgt    5   124.590 ±   1.180  ms/op
BatchIteratorBenchmark.iterate                256         0.25    1024         0.25  avgt    5    42.631 ±   2.149  ms/op
BatchIteratorBenchmark.iterate                256         0.25    1024          0.5  avgt    5    74.448 ±   1.217  ms/op
BatchIteratorBenchmark.iterate                256         0.25    2096          0.1  avgt    5   275.004 ±  23.621  ms/op
BatchIteratorBenchmark.iterate                256         0.25    2096         0.25  avgt    5    86.259 ±   3.352  ms/op
BatchIteratorBenchmark.iterate                256         0.25    2096          0.5  avgt    5   145.438 ±  10.205  ms/op
BatchIteratorBenchmark.iterate                256         0.25    4096          0.1  avgt    5   492.442 ±  30.441  ms/op
BatchIteratorBenchmark.iterate                256         0.25    4096         0.25  avgt    5   161.036 ±   4.514  ms/op
BatchIteratorBenchmark.iterate                256         0.25    4096          0.5  avgt    5   294.914 ±   8.920  ms/op
BatchIteratorBenchmark.iterate                256         0.25    8192          0.1  avgt    5  1009.289 ±  32.518  ms/op
BatchIteratorBenchmark.iterate                256         0.25    8192         0.25  avgt    5   324.175 ±  20.357  ms/op
BatchIteratorBenchmark.iterate                256         0.25    8192          0.5  avgt    5   571.219 ±  24.295  ms/op
BatchIteratorBenchmark.iterate                256         0.25   16384          0.1  avgt    5  2013.791 ±  65.364  ms/op
BatchIteratorBenchmark.iterate                256         0.25   16384         0.25  avgt    5   688.534 ±  29.812  ms/op
BatchIteratorBenchmark.iterate                256         0.25   16384          0.5  avgt    5  1178.611 ±  70.219  ms/op
BatchIteratorBenchmark.iterate                256          0.5       8          0.1  avgt    5     0.604 ±   0.028  ms/op
BatchIteratorBenchmark.iterate                256          0.5       8         0.25  avgt    5     0.449 ±   0.015  ms/op
BatchIteratorBenchmark.iterate                256          0.5       8          0.5  avgt    5     0.723 ±   0.038  ms/op
BatchIteratorBenchmark.iterate                256          0.5      64          0.1  avgt    5    15.569 ±   0.242  ms/op
BatchIteratorBenchmark.iterate                256          0.5      64         0.25  avgt    5    11.358 ±   0.463  ms/op
BatchIteratorBenchmark.iterate                256          0.5      64          0.5  avgt    5     4.731 ±   0.191  ms/op
BatchIteratorBenchmark.iterate                256          0.5     128          0.1  avgt    5    34.044 ±   1.285  ms/op
BatchIteratorBenchmark.iterate                256          0.5     128         0.25  avgt    5    27.343 ±   1.212  ms/op
BatchIteratorBenchmark.iterate                256          0.5     128          0.5  avgt    5     9.294 ±   0.666  ms/op
BatchIteratorBenchmark.iterate                256          0.5     256          0.1  avgt    5    58.937 ±   1.050  ms/op
BatchIteratorBenchmark.iterate                256          0.5     256         0.25  avgt    5    53.248 ±   2.903  ms/op
BatchIteratorBenchmark.iterate                256          0.5     256          0.5  avgt    5    18.567 ±   1.467  ms/op
BatchIteratorBenchmark.iterate                256          0.5     512          0.1  avgt    5   118.730 ±   5.617  ms/op
BatchIteratorBenchmark.iterate                256          0.5     512         0.25  avgt    5   107.753 ±   6.559  ms/op
BatchIteratorBenchmark.iterate                256          0.5     512          0.5  avgt    5    37.815 ±   5.467  ms/op
BatchIteratorBenchmark.iterate                256          0.5    1024          0.1  avgt    5   240.750 ±  17.597  ms/op
BatchIteratorBenchmark.iterate                256          0.5    1024         0.25  avgt    5   241.960 ±  10.548  ms/op
BatchIteratorBenchmark.iterate                256          0.5    1024          0.5  avgt    5    76.534 ±  10.914  ms/op
BatchIteratorBenchmark.iterate                256          0.5    2096          0.1  avgt    5   477.499 ±  32.210  ms/op
BatchIteratorBenchmark.iterate                256          0.5    2096         0.25  avgt    5   470.776 ±  11.390  ms/op
BatchIteratorBenchmark.iterate                256          0.5    2096          0.5  avgt    5   154.338 ±  11.892  ms/op
BatchIteratorBenchmark.iterate                256          0.5    4096          0.1  avgt    5   916.005 ±  27.301  ms/op
BatchIteratorBenchmark.iterate                256          0.5    4096         0.25  avgt    5   924.793 ±  70.184  ms/op
BatchIteratorBenchmark.iterate                256          0.5    4096          0.5  avgt    5   293.091 ±  28.470  ms/op
BatchIteratorBenchmark.iterate                256          0.5    8192          0.1  avgt    5  1877.342 ±  60.184  ms/op
BatchIteratorBenchmark.iterate                256          0.5    8192         0.25  avgt    5  1802.959 ±  87.297  ms/op
BatchIteratorBenchmark.iterate                256          0.5    8192          0.5  avgt    5   582.186 ±  42.892  ms/op
BatchIteratorBenchmark.iterate                256          0.5   16384          0.1  avgt    5  3638.314 ±  42.534  ms/op
BatchIteratorBenchmark.iterate                256          0.5   16384         0.25  avgt    5  3647.732 ±  95.176  ms/op
BatchIteratorBenchmark.iterate                256          0.5   16384          0.5  avgt    5  1175.859 ±  63.867  ms/op
BatchIteratorBenchmark.iterate                512          0.1       8          0.1  avgt    5     0.212 ±   0.009  ms/op
BatchIteratorBenchmark.iterate                512          0.1       8         0.25  avgt    5     0.210 ±   0.006  ms/op
BatchIteratorBenchmark.iterate                512          0.1       8          0.5  avgt    5     0.614 ±   0.034  ms/op
BatchIteratorBenchmark.iterate                512          0.1      64          0.1  avgt    5     1.088 ±   0.036  ms/op
BatchIteratorBenchmark.iterate                512          0.1      64         0.25  avgt    5     0.969 ±   0.065  ms/op
BatchIteratorBenchmark.iterate                512          0.1      64          0.5  avgt    5     4.581 ±   0.214  ms/op
BatchIteratorBenchmark.iterate                512          0.1     128          0.1  avgt    5     2.101 ±   0.111  ms/op
BatchIteratorBenchmark.iterate                512          0.1     128         0.25  avgt    5     5.869 ±   0.180  ms/op
BatchIteratorBenchmark.iterate                512          0.1     128          0.5  avgt    5     7.196 ±   0.285  ms/op
BatchIteratorBenchmark.iterate                512          0.1     256          0.1  avgt    5     6.316 ±   0.382  ms/op
BatchIteratorBenchmark.iterate                512          0.1     256         0.25  avgt    5    11.962 ±   0.631  ms/op
BatchIteratorBenchmark.iterate                512          0.1     256          0.5  avgt    5    17.725 ±   1.484  ms/op
BatchIteratorBenchmark.iterate                512          0.1     512          0.1  avgt    5    10.446 ±   0.460  ms/op
BatchIteratorBenchmark.iterate                512          0.1     512         0.25  avgt    5    21.685 ±   0.496  ms/op
BatchIteratorBenchmark.iterate                512          0.1     512          0.5  avgt    5    38.510 ±   1.517  ms/op
BatchIteratorBenchmark.iterate                512          0.1    1024          0.1  avgt    5    23.702 ±   0.606  ms/op
BatchIteratorBenchmark.iterate                512          0.1    1024         0.25  avgt    5    41.468 ±   1.396  ms/op
BatchIteratorBenchmark.iterate                512          0.1    1024          0.5  avgt    5    76.032 ±   2.378  ms/op
BatchIteratorBenchmark.iterate                512          0.1    2096          0.1  avgt    5    45.513 ±   1.094  ms/op
BatchIteratorBenchmark.iterate                512          0.1    2096         0.25  avgt    5    85.059 ±   3.753  ms/op
BatchIteratorBenchmark.iterate                512          0.1    2096          0.5  avgt    5   155.465 ±   2.405  ms/op
BatchIteratorBenchmark.iterate                512          0.1    4096          0.1  avgt    5    94.094 ±   6.123  ms/op
BatchIteratorBenchmark.iterate                512          0.1    4096         0.25  avgt    5   166.490 ±   8.492  ms/op
BatchIteratorBenchmark.iterate                512          0.1    4096          0.5  avgt    5   286.724 ±  12.219  ms/op
BatchIteratorBenchmark.iterate                512          0.1    8192          0.1  avgt    5   175.971 ±   9.321  ms/op
BatchIteratorBenchmark.iterate                512          0.1    8192         0.25  avgt    5   329.869 ±  13.000  ms/op
BatchIteratorBenchmark.iterate                512          0.1    8192          0.5  avgt    5   600.247 ±  31.441  ms/op
BatchIteratorBenchmark.iterate                512          0.1   16384          0.1  avgt    5   358.092 ±  33.453  ms/op
BatchIteratorBenchmark.iterate                512          0.1   16384         0.25  avgt    5   653.748 ±  21.560  ms/op
BatchIteratorBenchmark.iterate                512          0.1   16384          0.5  avgt    5  1194.241 ±  44.961  ms/op
BatchIteratorBenchmark.iterate                512         0.25       8          0.1  avgt    5     0.190 ±   0.007  ms/op
BatchIteratorBenchmark.iterate                512         0.25       8         0.25  avgt    5     0.236 ±   0.012  ms/op
BatchIteratorBenchmark.iterate                512         0.25       8          0.5  avgt    5     0.323 ±   0.019  ms/op
BatchIteratorBenchmark.iterate                512         0.25      64          0.1  avgt    5     9.356 ±   0.237  ms/op
BatchIteratorBenchmark.iterate                512         0.25      64         0.25  avgt    5     2.491 ±   0.134  ms/op
BatchIteratorBenchmark.iterate                512         0.25      64          0.5  avgt    5     4.403 ±   0.059  ms/op
BatchIteratorBenchmark.iterate                512         0.25     128          0.1  avgt    5    15.434 ±   0.862  ms/op
BatchIteratorBenchmark.iterate                512         0.25     128         0.25  avgt    5     4.581 ±   0.141  ms/op
BatchIteratorBenchmark.iterate                512         0.25     128          0.5  avgt    5     9.318 ±   0.491  ms/op
BatchIteratorBenchmark.iterate                512         0.25     256          0.1  avgt    5    29.597 ±   1.166  ms/op
BatchIteratorBenchmark.iterate                512         0.25     256         0.25  avgt    5    10.665 ±   0.245  ms/op
BatchIteratorBenchmark.iterate                512         0.25     256          0.5  avgt    5    19.384 ±   0.382  ms/op
BatchIteratorBenchmark.iterate                512         0.25     512          0.1  avgt    5    66.819 ±   2.174  ms/op
BatchIteratorBenchmark.iterate                512         0.25     512         0.25  avgt    5    20.948 ±   0.362  ms/op
BatchIteratorBenchmark.iterate                512         0.25     512          0.5  avgt    5    35.545 ±   2.225  ms/op
BatchIteratorBenchmark.iterate                512         0.25    1024          0.1  avgt    5   117.798 ±   5.433  ms/op
BatchIteratorBenchmark.iterate                512         0.25    1024         0.25  avgt    5    42.534 ±   0.888  ms/op
BatchIteratorBenchmark.iterate                512         0.25    1024          0.5  avgt    5    72.338 ±   2.868  ms/op
BatchIteratorBenchmark.iterate                512         0.25    2096          0.1  avgt    5   267.372 ±   8.566  ms/op
BatchIteratorBenchmark.iterate                512         0.25    2096         0.25  avgt    5    87.697 ±   2.602  ms/op
BatchIteratorBenchmark.iterate                512         0.25    2096          0.5  avgt    5   142.496 ±  10.093  ms/op
BatchIteratorBenchmark.iterate                512         0.25    4096          0.1  avgt    5   512.603 ±  16.149  ms/op
BatchIteratorBenchmark.iterate                512         0.25    4096         0.25  avgt    5   165.944 ±   4.876  ms/op
BatchIteratorBenchmark.iterate                512         0.25    4096          0.5  avgt    5   300.813 ±   7.101  ms/op
BatchIteratorBenchmark.iterate                512         0.25    8192          0.1  avgt    5  1077.116 ±  37.852  ms/op
BatchIteratorBenchmark.iterate                512         0.25    8192         0.25  avgt    5   331.440 ±  23.604  ms/op
BatchIteratorBenchmark.iterate                512         0.25    8192          0.5  avgt    5   573.211 ±  23.427  ms/op
BatchIteratorBenchmark.iterate                512         0.25   16384          0.1  avgt    5  2028.898 ±  61.492  ms/op
BatchIteratorBenchmark.iterate                512         0.25   16384         0.25  avgt    5   649.163 ±  22.682  ms/op
BatchIteratorBenchmark.iterate                512         0.25   16384          0.5  avgt    5  1195.114 ±  70.295  ms/op
BatchIteratorBenchmark.iterate                512          0.5       8          0.1  avgt    5     0.246 ±   0.011  ms/op
BatchIteratorBenchmark.iterate                512          0.5       8         0.25  avgt    5     1.443 ±   0.051  ms/op
BatchIteratorBenchmark.iterate                512          0.5       8          0.5  avgt    5     0.598 ±   0.017  ms/op
BatchIteratorBenchmark.iterate                512          0.5      64          0.1  avgt    5    13.955 ±   0.335  ms/op
BatchIteratorBenchmark.iterate                512          0.5      64         0.25  avgt    5    14.126 ±   0.729  ms/op
BatchIteratorBenchmark.iterate                512          0.5      64          0.5  avgt    5     5.144 ±   0.302  ms/op
BatchIteratorBenchmark.iterate                512          0.5     128          0.1  avgt    5    29.705 ±   0.737  ms/op
BatchIteratorBenchmark.iterate                512          0.5     128         0.25  avgt    5    29.022 ±   1.795  ms/op
BatchIteratorBenchmark.iterate                512          0.5     128          0.5  avgt    5    10.103 ±   0.306  ms/op
BatchIteratorBenchmark.iterate                512          0.5     256          0.1  avgt    5    54.502 ±   1.598  ms/op
BatchIteratorBenchmark.iterate                512          0.5     256         0.25  avgt    5    51.175 ±   1.668  ms/op
BatchIteratorBenchmark.iterate                512          0.5     256          0.5  avgt    5    17.974 ±   0.739  ms/op
BatchIteratorBenchmark.iterate                512          0.5     512          0.1  avgt    5   125.287 ±   8.207  ms/op
BatchIteratorBenchmark.iterate                512          0.5     512         0.25  avgt    5   110.440 ±   2.790  ms/op
BatchIteratorBenchmark.iterate                512          0.5     512          0.5  avgt    5    36.114 ±   1.265  ms/op
BatchIteratorBenchmark.iterate                512          0.5    1024          0.1  avgt    5   218.509 ±   5.789  ms/op
BatchIteratorBenchmark.iterate                512          0.5    1024         0.25  avgt    5   238.337 ±   6.447  ms/op
BatchIteratorBenchmark.iterate                512          0.5    1024          0.5  avgt    5    76.261 ±   3.927  ms/op
BatchIteratorBenchmark.iterate                512          0.5    2096          0.1  avgt    5   480.542 ±  24.153  ms/op
BatchIteratorBenchmark.iterate                512          0.5    2096         0.25  avgt    5   487.402 ±  39.954  ms/op
BatchIteratorBenchmark.iterate                512          0.5    2096          0.5  avgt    5   146.468 ±   8.820  ms/op
BatchIteratorBenchmark.iterate                512          0.5    4096          0.1  avgt    5   952.064 ±  64.483  ms/op
BatchIteratorBenchmark.iterate                512          0.5    4096         0.25  avgt    5   912.621 ±  17.245  ms/op
BatchIteratorBenchmark.iterate                512          0.5    4096          0.5  avgt    5   301.135 ±  21.117  ms/op
BatchIteratorBenchmark.iterate                512          0.5    8192          0.1  avgt    5  1821.150 ±  62.973  ms/op
BatchIteratorBenchmark.iterate                512          0.5    8192         0.25  avgt    5  1822.627 ±  43.698  ms/op
BatchIteratorBenchmark.iterate                512          0.5    8192          0.5  avgt    5   596.827 ±  26.334  ms/op
BatchIteratorBenchmark.iterate                512          0.5   16384          0.1  avgt    5  3681.541 ± 159.046  ms/op
BatchIteratorBenchmark.iterate                512          0.5   16384         0.25  avgt    5  3605.881 ± 147.966  ms/op
BatchIteratorBenchmark.iterate                512          0.5   16384          0.5  avgt    5  1184.733 ±  27.392  ms/op

@lemire
Copy link
Member

lemire commented Apr 14, 2018

@richardstartin Too many numbers!!!

Can you select an interesting sample of results so that people can review this quickly and understand why they might want to give it a try?

@richardstartin
Copy link
Member Author

richardstartin commented Apr 14, 2018

Sure. The batch iterator is always at least twice as fast as the standard iterator, and that is true across a range of sizes of bitmaps, proportion of run containers, array containers and bitmaps containers, and a range of size of buffer. 128-256 element buffers seem to do the best job. Depending on the contents and size of the bitmap, the batch iterator can be 10x faster. For example, a best case and worst case:

Benchmark (bufferSize) (dirtiness) (keys) (runniness) Mode Cnt Score Error Units
BatchIteratorBenchmark.batchIterate 128 0.5 512 0.1 avgt 5 13.124 0.801 ms/op
BatchIteratorBenchmark.iterate 128 0.5 512 0.1 avgt 5 127.17 7.188 ms/op
BatchIteratorBenchmark.batchIterate 256 0.25 512 0.5 avgt 5 14.586 1.153 ms/op
BatchIteratorBenchmark.iterate 256 0.25 512 0.5 avgt 5 35.724 0.645 ms/op

@lemire
Copy link
Member

lemire commented Apr 14, 2018

This all looks very good. Let us merge.

@lemire lemire merged commit 5d61acf into RoaringBitmap:master Apr 14, 2018
@richardstartin richardstartin deleted the iterators2 branch April 15, 2018 08:38
Smallhi pushed a commit to Smallhi/RoaringBitmap that referenced this pull request Jun 14, 2021
* implement batch iterators

* add benchmark
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants