Bitmap overlap walks long nonmatching run prefixes one at a time
perfloop-oss/croaring · INEFFICIENT ALGORITHM
https://perfloop.ai/t/oss/case_n9b6a92kjf
Verdict
VERIFIED · settled 2026-11-07 · pull request opened as RoaringBitmap/CRoaring#917
What happened: The paired measurements met the required improvement.
Hypothesis
The public bitmap-overlap query walks nonmatching runs—consecutive integer spans—one at a time. On a replay of retained, run-compressed weather sets, this routine accounts for 43.78% of sampled CPU. The possible saving from skipping long prefixes is unmeasured. Confidence is medium.
The benefiting library operation is `roaring_bitmap_intersect`, documented in `include/roaring/roaring.h:234-238`. At revision `5fce11dbf8f8227125a466ce895266967e708816`, its ordinary entry at `src/roaring.c:3078-3107` compares high-16-bit keys and calls `container_intersect` for each matching key reached before the first overlap. The dispatcher unwraps shared containers and sends RUN/RUN pairs to this routine (`include/roaring/containers/containers.h:864-879`). This is an ordinary representation route under documented run compression, not an error fallback. Consumer prevalence beyond the retained population is unknown.
The input conditions are evidenced independently of the probe. `benchmarks/realdata/README.md` describes retained integer sets for bitmap testing. `tests/realdata_unit.c:796-805` run-optimizes those sets, and lines 365-385 exercise adjacent-pair overlap queries. The replay uses all 200 `weather_sept_85_srt` sets in the alphabetical order supplied by `benchmarks/numbersfromtextfiles.h:105-110`, with normal `roaring_bitmap_of_ptr` construction followed by `roaring_bitmap_run_optimize`. README.md:219-220 documents this compression step, and lines 600-602 recommend it for large data volumes. The direction is architecture-independent and creates no new operations, types, configuration or serialization format.
The retained workload's one-pass route check observed 205 RUN/RUN calls across 199 public queries: 13 full-container shortcuts, 52 nonfull matches and 140 nonfull misses. Nonfull calls made 26,069 pointer advances, with lists reaching 1,485 runs. Of these advances, 14,263 occurred in consecutive same-side groups of at least eight, and 11,839 in groups of at least 32. These are traversal counts, not CPU measurements. A broader endpoint-disjoint shortcut covers 27 calls but only 56 advances here, so it does not remove the material internal-prefix work.
Each failed comparison at `src/containers/run.c:555-567` advances exactly one cursor. A group of g losing runs therefore takes g advances even when the opposite cursor does not move. Valid run endpoints are strictly ordered: `run_container_validate` at lines 671-718 rejects empty, overlapping, adjacent-unmerged and out-of-range runs. Every run whose end is no later than the opposing start is excluded from overlap. An absent pair can require work linear in the two run counts; successful calls stop at their first match and need not scan long lists. Full-container calls already have a constant-time shortcut. The public entry already uses ordered advancement for unmatched high keys, locating the remaining mechanism inside the run predicate.
Receipt `call_SnKwVkX4fW1MhfRjDNQ2arFL` ran 50,000 passes, or 9,950,000 public queries, compiled with GCC at -O3 without forced ISA flags. Its complete 100 Hz native profile contains 7.88 sampled CPU seconds, including setup and checks. `run_container_intersect` owns 3.39 seconds directly and 3.45 seconds including inlined work; the heavy frames are in the scan at lines 555-566. It is the largest single cost in this replay. The receipt workload's separate one-pass rerun completed the cardinality differential and before/after serialized-content-hash checks. Illustratively, halving the routine's CPU while leaving other work unchanged would save about 21.9% of whole-replay CPU. Partial eligibility and search overhead reduce that estimate. Neither a replacement speedup nor production frequency was measured.
The required Case proof is lower CPU per full public overlap query on the unchanged, warm, run-optimized weather adjacent-pair replay, including dispatch and early returns. Reject the performance claim if improvement exists only in a helper benchmark or the full replay does not improve. Sweep run counts, ratios and skip distances on both sides of any introduced cutoff; tiny lists and immediate matches are regression risks because search setup can exceed their current work. Differentially compare with `roaring_bitmap_and_cardinality > 0` and preserve input contents. Include portable-deserialized retained sets, shared COW containers, empty and full bitmaps, 0 and 65535, adjacent nonoverlapping runs, one-value overlaps, absent/first/last matches and swapped operands. Other retained datasets are optional additional samples, not established beneficiaries of this profile.
Change to test: Use adaptive exponential-plus-binary forward search to skip long prefixes of runs ending before the opposing run starts, instead of advancing through each run. Retain cheap scalar handling for short prefixes and immediate matches, preserving exact overlap answers, bounded reads and unchanged inputs without adding public API.
Where it lives
perfloop-oss/croaring · src/roaring.c
Evidence
Bitmap overlap GCC 14 -O3 · 29 sample pairs
| metric | baseline | candidate | paired median change | confidence range | required | result |
|---|---|---|---|---|---|---|
cpu_ns/query |
728.6 |
653.3 |
−10.3% (−75.38) |
−90.45 to −45.23 |
gain > 0; gain > 0.05 × |baseline median|; arm medians separated |
PASSED |
tiny_cpu_ns/query |
16.96 |
9.108 |
−46.3% (−7.852) |
−8.794 to −7.538 |
loss ≤ 0.05 × |baseline median| |
PASSED |
cutoff_cpu_ns/query |
18.84 |
10.05 |
−53.3% (−10.05) |
−10.05 to −8.794 |
loss ≤ 0.05 × |baseline median| |
PASSED |
mid_skip_cpu_ns/query |
28.89 |
15.08 |
−47.8% (−13.82) |
−15.08 to −13.82 |
loss ≤ 0.05 × |baseline median| |
PASSED |
long_skip_cpu_ns/query |
50.25 |
20.1 |
−60% (−30.15) |
−30.15 to −28.89 |
loss ≤ 0.05 × |baseline median| |
PASSED |
balanced_cpu_ns/query |
258.8 |
113.1 |
−56.3% (−145.7) |
−150.8 to −143.2 |
loss ≤ 0.05 × |baseline median| |
PASSED |
wide_left_cpu_ns/query |
153.3 |
30.15 |
−80.3% (−123.1) |
−130.7 to −120.6 |
loss ≤ 0.05 × |baseline median| |
PASSED |
wide_right_cpu_ns/query |
148.2 |
32.66 |
−78% (−115.6) |
−120.6 to −113.1 |
loss ≤ 0.05 × |baseline median| |
PASSED |
immediate_cpu_ns/query |
7.224 |
5.967 |
−17.4% (−1.256) |
−1.256 to −0.6281 |
loss ≤ 0.05 × |baseline median| |
PASSED |
early20_ns/query |
5.346 |
3.526 |
−34.2% (−1.827) |
−1.988 to −1.711 |
loss ≤ 0.05 × |baseline median| |
PASSED |
few3_ns/query |
5.224 |
3.457 |
−33.6% (−1.758) |
−2.047 to −1.444 |
gain > 0; gain > 0.05 × |baseline median|; arm medians separated |
PASSED |
periodic_skip1_ns/query |
4546 |
2683 |
−40.9% (−1858) |
−1976 to −1741 |
loss ≤ 0.05 × |baseline median| |
PASSED |
periodic_skip2_ns/query |
5554 |
3526 |
−36.2% (−2012) |
−2214 to −1635 |
loss ≤ 0.05 × |baseline median| |
PASSED |
periodic_skip3_ns/query |
4923 |
3661 |
−25.7% (−1267) |
−1313 to −1129 |
loss ≤ 0.05 × |baseline median| |
PASSED |
periodic_skip4_ns/query |
5249 |
3323 |
−36.7% (−1927) |
−2148 to −1729 |
loss ≤ 0.05 × |baseline median| |
PASSED |
periodic_skip5_ns/query |
4163 |
3058 |
−26.5% (−1105) |
−1330 to −975.8 |
loss ≤ 0.05 × |baseline median| |
PASSED |
constructed_rand3_ns/query |
5.068 |
3.601 |
−29.3% (−1.483) |
−2.418 to −1.388 |
gain > 0; gain > 0.05 × |baseline median|; arm medians separated |
PASSED |
constructed_rand20_ns/query |
4.987 |
3.685 |
−26.2% (−1.305) |
−1.466 to −1.158 |
loss ≤ 0.05 × |baseline median| |
PASSED |
constructed_rand200_ns/query |
4.48 |
3.427 |
−23.7% (−1.064) |
−1.212 to −0.9257 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit1_ns/query |
4.471 |
2.979 |
−33.4% (−1.493) |
−1.791 to −1.256 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit2_ns/query |
6.362 |
3.448 |
−46% (−2.929) |
−3.236 to −2.822 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit3_ns/query |
8.284 |
3.878 |
−53.1% (−4.396) |
−4.565 to −4.182 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit4_ns/query |
9.529 |
3.93 |
−58.6% (−5.586) |
−5.708 to −5.479 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit5_ns/query |
12.09 |
4.359 |
−63.5% (−7.685) |
−7.889 to −7.231 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit6_ns/query |
13.27 |
5.439 |
−58.7% (−7.783) |
−9.034 to −7.563 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit7_ns/query |
15.01 |
5.379 |
−64.3% (−9.649) |
−10.19 to −8.926 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit8_ns/query |
16.09 |
5.857 |
−63.2% (−10.17) |
−11.06 to −9.685 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit9_ns/query |
18.13 |
6.669 |
−62.7% (−11.37) |
−12.32 to −10.76 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit10_ns/query |
19.21 |
6.775 |
−64.6% (−12.4) |
−14.13 to −11.94 |
loss ≤ 0.05 × |baseline median| |
PASSED |
interleave100_ns/query |
410 |
172.5 |
−58% (−237.8) |
−246.9 to −233.4 |
gain > 0; gain > 0.05 × |baseline median|; arm medians separated |
PASSED |
interleave2000_ns/query |
8054 |
3358 |
−58.5% (−4711) |
−4949 to −4619 |
gain > 0; gain > 0.05 × |baseline median|; arm medians separated |
PASSED |
prefix4000_ns/query |
4467 |
30.67 |
−99.3% (−4436) |
−4599 to −4344 |
gain > 0; gain > 0.05 × |baseline median|; arm medians separated |
PASSED |
skew4000_4_ns/query |
4299 |
47.19 |
−98.8% (−4248) |
−4486 to −4161 |
gain > 0; gain > 0.05 × |baseline median|; arm medians separated |
PASSED |
long_tiny_ns/query |
5.21 |
3.765 |
−28.2% (−1.47) |
−1.531 to −1.262 |
gain > 0; gain > 0.05 × |baseline median|; arm medians separated |
PASSED |
native_weather_ns/query |
725.3 |
668.7 |
−7.5% (−54.73) |
−74.32 to −33.06 |
loss ≤ 0.05 × |baseline median| |
PASSED |
full_left_ns/query |
6.147 |
6.102 |
−0.04211 |
−1.267 to +0.9328 |
loss ≤ stated 0.5 × |baseline median| |
PASSED |
full_right_ns/query |
6.596 |
6.097 |
−7.5% (−0.4949) |
−0.6124 to −0.3877 |
loss ≤ stated 0.5 × |baseline median| |
PASSED |
full_full_ns/query |
6.132 |
6.094 |
−0.04033 |
−0.1071 to +0.6688 |
loss ≤ stated 0.5 × |baseline median| |
PASSED |
Bitmap overlap GCC 12 -O2 · 34 sample pairs
| metric | baseline | candidate | paired median change | confidence range | required | result |
|---|---|---|---|---|---|---|
cpu_ns/query |
663.3 |
665.8 |
+5.025 |
−15.08 to +20.1 |
loss ≤ 0.05 × |baseline median| |
PASSED |
tiny_cpu_ns/query |
11.62 |
10.05 |
−16.2% (−1.884) |
−2.827 to −1.57 |
loss ≤ 0.05 × |baseline median| |
PASSED |
cutoff_cpu_ns/query |
13.82 |
11.31 |
−18.2% (−2.513) |
−5.025 to −1.256 |
loss ≤ 0.05 × |baseline median| |
PASSED |
mid_skip_cpu_ns/query |
18.84 |
17.59 |
−6.7% (−1.256) |
−3.769 to −1.256 |
loss ≤ 0.05 × |baseline median| |
PASSED |
long_skip_cpu_ns/query |
33.92 |
23.24 |
−33.3% (−11.31) |
−13.82 to −7.538 |
loss ≤ 0.05 × |baseline median| |
PASSED |
balanced_cpu_ns/query |
119.3 |
114.3 |
−4.2% (−5.025) |
−8.794 to −2.513 |
loss ≤ 0.05 × |baseline median| |
PASSED |
wide_left_cpu_ns/query |
110.6 |
32.66 |
−70.5% (−77.89) |
−80.4 to −77.89 |
loss ≤ 0.05 × |baseline median| |
PASSED |
wide_right_cpu_ns/query |
148.2 |
32.66 |
−78% (−115.6) |
−118.1 to −113.1 |
loss ≤ 0.05 × |baseline median| |
PASSED |
immediate_cpu_ns/query |
6.595 |
5.653 |
−14.3% (−0.9422) |
−1.57 to −0.6281 |
loss ≤ 0.05 × |baseline median| |
PASSED |
early20_ns/query |
4.639 |
4.043 |
−12.9% (−0.6) |
−0.6497 to −0.5483 |
loss ≤ 0.05 × |baseline median| |
PASSED |
few3_ns/query |
4.514 |
3.832 |
−15.1% (−0.681) |
−0.881 to −0.5516 |
gain > 0; gain > 0.05 × |baseline median|; arm medians separated |
PASSED |
periodic_skip1_ns/query |
2900 |
2776 |
−4.3% (−125.9) |
−226.6 to −89.05 |
loss ≤ 0.05 × |baseline median| |
PASSED |
periodic_skip2_ns/query |
3993 |
3757 |
−6.1% (−244.7) |
−287 to −180.5 |
loss ≤ 0.05 × |baseline median| |
PASSED |
periodic_skip3_ns/query |
3672 |
3670 |
+30.24 |
−78.69 to +100.6 |
loss ≤ 0.05 × |baseline median| |
PASSED |
periodic_skip4_ns/query |
3520 |
3430 |
−3% (−106.8) |
−177.6 to −19.97 |
loss ≤ 0.05 × |baseline median| |
PASSED |
periodic_skip5_ns/query |
3568 |
2955 |
−17.2% (−614.3) |
−695.3 to −582.4 |
loss ≤ 0.05 × |baseline median| |
PASSED |
constructed_rand3_ns/query |
4.867 |
4.399 |
−9.7% (−0.4717) |
−0.5982 to −0.3192 |
gain > 0; gain > 0.05 × |baseline median|; arm medians separated |
PASSED |
constructed_rand20_ns/query |
4.79 |
4.371 |
−8.8% (−0.422) |
−0.5498 to −0.3425 |
loss ≤ 0.05 × |baseline median| |
PASSED |
constructed_rand200_ns/query |
4.408 |
4.05 |
−8.3% (−0.3664) |
−0.499 to −0.265 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit1_ns/query |
4.316 |
3.762 |
−12.5% (−0.539) |
−0.6054 to −0.3481 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit2_ns/query |
5.322 |
5.017 |
−5.9% (−0.3147) |
−0.4344 to −0.2615 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit3_ns/query |
6.135 |
5.6 |
−8.6% (−0.5275) |
−0.643 to −0.3769 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit4_ns/query |
6.846 |
5.811 |
−15.1% (−1.037) |
−1.458 to −0.9009 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit5_ns/query |
7.521 |
6.045 |
−19.6% (−1.476) |
−1.626 to −1.4 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit6_ns/query |
8.23 |
6.637 |
−19.6% (−1.614) |
−1.776 to −1.518 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit7_ns/query |
9.152 |
7.268 |
−20.9% (−1.908) |
−1.977 to −1.8 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit8_ns/query |
9.929 |
8.096 |
−18.6% (−1.847) |
−1.981 to −1.618 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit9_ns/query |
10.79 |
8.829 |
−18.3% (−1.979) |
−2.158 to −1.853 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit10_ns/query |
11.7 |
9.23 |
−21.4% (−2.505) |
−2.674 to −2.398 |
loss ≤ 0.05 × |baseline median| |
PASSED |
interleave100_ns/query |
198.8 |
177 |
−11.1% (−22.09) |
−29.71 to −20.31 |
gain > 0; gain > 0.05 × |baseline median|; arm medians separated |
PASSED |
interleave2000_ns/query |
3733 |
3373 |
−9.8% (−367.2) |
−429.5 to −320.5 |
gain > 0; gain > 0.05 × |baseline median|; arm medians separated |
PASSED |
prefix4000_ns/query |
3747 |
32.06 |
−99.1% (−3715) |
−3802 to −3688 |
gain > 0; gain > 0.05 × |baseline median|; arm medians separated |
PASSED |
skew4000_4_ns/query |
3706 |
48.81 |
−98.7% (−3657) |
−3742 to −3644 |
gain > 0; gain > 0.05 × |baseline median|; arm medians separated |
PASSED |
long_tiny_ns/query |
4.789 |
4.106 |
−13.9% (−0.6654) |
−0.7855 to −0.5972 |
gain > 0; gain > 0.05 × |baseline median|; arm medians separated |
PASSED |
native_weather_ns/query |
665.7 |
681.3 |
+15.62 |
−1.644 to +29.19 |
loss ≤ 0.05 × |baseline median| |
PASSED |
full_left_ns/query |
6.05 |
6.098 |
+0.03195 |
−1.184 to +0.795 |
loss ≤ stated 0.5 × |baseline median| |
PASSED |
full_right_ns/query |
6.089 |
6.093 |
−0.007514 |
−0.09172 to +0.2126 |
loss ≤ stated 0.5 × |baseline median| |
PASSED |
full_full_ns/query |
6.076 |
6.042 |
−0.03308 |
−0.4075 to +0.09763 |
loss ≤ stated 0.5 × |baseline median| |
PASSED |
Bitmap overlap GCC 12 -O3 · 29 sample pairs
| metric | baseline | candidate | paired median change | confidence range | required | result |
|---|---|---|---|---|---|---|
cpu_ns/query |
678.4 |
678.4 |
−5.025 |
−30.15 to +25.13 |
loss ≤ 0.05 × |baseline median| |
PASSED |
tiny_cpu_ns/query |
12.56 |
8.794 |
−30% (−3.769) |
−4.711 to −3.455 |
loss ≤ 0.05 × |baseline median| |
PASSED |
cutoff_cpu_ns/query |
13.82 |
10.05 |
−27.3% (−3.769) |
−6.281 to −2.513 |
loss ≤ 0.05 × |baseline median| |
PASSED |
mid_skip_cpu_ns/query |
18.84 |
13.82 |
−33.3% (−6.281) |
−8.794 to −5.025 |
loss ≤ 0.05 × |baseline median| |
PASSED |
long_skip_cpu_ns/query |
37.69 |
21.36 |
−46.7% (−17.59) |
−23.87 to −10.05 |
loss ≤ 0.05 × |baseline median| |
PASSED |
balanced_cpu_ns/query |
164.6 |
108 |
−33.6% (−55.28) |
−62.81 to −50.25 |
loss ≤ 0.05 × |baseline median| |
PASSED |
wide_left_cpu_ns/query |
110.6 |
30.15 |
−72.7% (−80.4) |
−87.94 to −77.89 |
loss ≤ 0.05 × |baseline median| |
PASSED |
wide_right_cpu_ns/query |
148.2 |
32.66 |
−78% (−115.6) |
−123.1 to −113.1 |
loss ≤ 0.05 × |baseline median| |
PASSED |
immediate_cpu_ns/query |
6.91 |
5.653 |
−18.2% (−1.256) |
−1.57 to −0.9422 |
loss ≤ 0.05 × |baseline median| |
PASSED |
early20_ns/query |
6.136 |
3.925 |
−36.2% (−2.219) |
−2.865 to −1.958 |
loss ≤ 0.05 × |baseline median| |
PASSED |
few3_ns/query |
6.032 |
3.721 |
−38.3% (−2.311) |
−3.48 to −1.9 |
gain > 0; gain > 0.05 × |baseline median|; arm medians separated |
PASSED |
periodic_skip1_ns/query |
3995 |
2837 |
−28.6% (−1143) |
−1286 to −1000 |
loss ≤ 0.05 × |baseline median| |
PASSED |
periodic_skip2_ns/query |
4803 |
3916 |
−18.6% (−894.7) |
−1076 to −646.5 |
loss ≤ 0.05 × |baseline median| |
PASSED |
periodic_skip3_ns/query |
3974 |
3824 |
−140.9 |
−305.4 to +63.04 |
loss ≤ 0.05 × |baseline median| |
PASSED |
periodic_skip4_ns/query |
3690 |
3537 |
−4.2% (−153.7) |
−506.8 to −9.231 |
loss ≤ 0.05 × |baseline median| |
PASSED |
periodic_skip5_ns/query |
3520 |
3067 |
−12.6% (−441.8) |
−702.1 to −295 |
loss ≤ 0.05 × |baseline median| |
PASSED |
constructed_rand3_ns/query |
5.625 |
3.828 |
−32% (−1.798) |
−1.923 to −1.672 |
gain > 0; gain > 0.05 × |baseline median|; arm medians separated |
PASSED |
constructed_rand20_ns/query |
5.574 |
3.816 |
−31.1% (−1.736) |
−1.831 to −1.287 |
loss ≤ 0.05 × |baseline median| |
PASSED |
constructed_rand200_ns/query |
5.059 |
3.619 |
−28.8% (−1.455) |
−1.518 to −1.358 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit1_ns/query |
5.239 |
3.359 |
−35.3% (−1.852) |
−2.192 to −1.692 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit2_ns/query |
6.396 |
3.535 |
−45.1% (−2.886) |
−3.213 to −2.789 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit3_ns/query |
7.747 |
3.972 |
−48.6% (−3.766) |
−3.988 to −3.551 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit4_ns/query |
8.939 |
3.98 |
−55.3% (−4.941) |
−5.406 to −4.442 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit5_ns/query |
10.79 |
5.078 |
−52.8% (−5.699) |
−6.025 to −5.109 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit6_ns/query |
11.96 |
5.199 |
−56.6% (−6.766) |
−6.932 to −6.595 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit7_ns/query |
13.28 |
5.561 |
−58% (−7.706) |
−8.082 to −7.336 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit8_ns/query |
14.43 |
6.096 |
−57.8% (−8.342) |
−8.576 to −8.131 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit9_ns/query |
15.37 |
7.198 |
−53.1% (−8.153) |
−8.494 to −7.645 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit10_ns/query |
16.94 |
6.807 |
−59.6% (−10.1) |
−10.46 to −8.387 |
loss ≤ 0.05 × |baseline median| |
PASSED |
interleave100_ns/query |
262.1 |
175.4 |
−33% (−86.39) |
−91.74 to −56.43 |
gain > 0; gain > 0.05 × |baseline median|; arm medians separated |
PASSED |
interleave2000_ns/query |
5082 |
3392 |
−33.2% (−1687) |
−1898 to −1598 |
gain > 0; gain > 0.05 × |baseline median|; arm medians separated |
PASSED |
prefix4000_ns/query |
3918 |
30.67 |
−99.2% (−3887) |
−5069 to −3709 |
gain > 0; gain > 0.05 × |baseline median|; arm medians separated |
PASSED |
skew4000_4_ns/query |
3744 |
47.09 |
−98.7% (−3697) |
−4522 to −3651 |
gain > 0; gain > 0.05 × |baseline median|; arm medians separated |
PASSED |
long_tiny_ns/query |
5.883 |
3.894 |
−33.8% (−1.988) |
−2.385 to −1.762 |
gain > 0; gain > 0.05 × |baseline median|; arm medians separated |
PASSED |
native_weather_ns/query |
650.1 |
644.4 |
−5.321 |
−36.73 to +19.31 |
loss ≤ 0.05 × |baseline median| |
PASSED |
full_left_ns/query |
6.508 |
6.408 |
−0.03275 |
−1.277 to +0.8531 |
loss ≤ stated 0.5 × |baseline median| |
PASSED |
full_right_ns/query |
6.269 |
6.394 |
+0.1303 |
−0.3969 to +0.8855 |
loss ≤ stated 0.5 × |baseline median| |
PASSED |
full_full_ns/query |
6.342 |
6.383 |
+0.03086 |
−0.4252 to +2.08 |
loss ≤ stated 0.5 × |baseline median| |
PASSED |
Bitmap overlap GCC 14 -O2 · 45 sample pairs
| metric | baseline | candidate | paired median change | confidence range | required | result |
|---|---|---|---|---|---|---|
cpu_ns/query |
763.8 |
688.4 |
−9.2% (−70.35) |
−85.43 to −50.25 |
loss ≤ 0.05 × |baseline median| |
PASSED |
tiny_cpu_ns/query |
15.08 |
10.68 |
−29.2% (−4.397) |
−5.025 to −4.083 |
loss ≤ 0.05 × |baseline median| |
PASSED |
cutoff_cpu_ns/query |
16.33 |
11.31 |
−30.8% (−5.025) |
−6.281 to −3.769 |
loss ≤ 0.05 × |baseline median| |
PASSED |
mid_skip_cpu_ns/query |
23.87 |
17.59 |
−26.3% (−6.281) |
−7.538 to −5.025 |
loss ≤ 0.05 × |baseline median| |
PASSED |
long_skip_cpu_ns/query |
38.94 |
22.61 |
−41.9% (−16.33) |
−18.84 to −16.33 |
loss ≤ 0.05 × |baseline median| |
PASSED |
balanced_cpu_ns/query |
233.7 |
134.4 |
−43% (−100.5) |
−104.3 to −95.48 |
loss ≤ 0.05 × |baseline median| |
PASSED |
wide_left_cpu_ns/query |
133.2 |
32.66 |
−77.4% (−103) |
−105.5 to −97.99 |
loss ≤ 0.05 × |baseline median| |
PASSED |
wide_right_cpu_ns/query |
145.7 |
32.66 |
−77.6% (−113.1) |
−115.6 to −110.6 |
loss ≤ 0.05 × |baseline median| |
PASSED |
immediate_cpu_ns/query |
7.224 |
6.281 |
−13% (−0.9422) |
−1.256 to −0.6281 |
loss ≤ 0.05 × |baseline median| |
PASSED |
early20_ns/query |
5.542 |
4.776 |
−13.2% (−0.7303) |
−0.8639 to −0.5808 |
loss ≤ 0.05 × |baseline median| |
PASSED |
few3_ns/query |
5.509 |
4.72 |
−13.6% (−0.747) |
−1.016 to −0.4757 |
loss ≤ stated 0.2 × |baseline median| |
PASSED |
periodic_skip1_ns/query |
4365 |
3102 |
−29% (−1267) |
−1361 to −1213 |
loss ≤ 0.05 × |baseline median| |
PASSED |
periodic_skip2_ns/query |
4804 |
4103 |
−14.4% (−691.3) |
−807.9 to −637 |
loss ≤ 0.05 × |baseline median| |
PASSED |
periodic_skip3_ns/query |
4708 |
4090 |
−13% (−611) |
−701.8 to −546.6 |
loss ≤ 0.05 × |baseline median| |
PASSED |
periodic_skip4_ns/query |
4177 |
3675 |
−11.4% (−476.2) |
−643.4 to −315.7 |
loss ≤ 0.05 × |baseline median| |
PASSED |
periodic_skip5_ns/query |
4035 |
3419 |
−15.2% (−614.1) |
−728.8 to −501.3 |
loss ≤ 0.05 × |baseline median| |
PASSED |
constructed_rand3_ns/query |
5.218 |
4.737 |
−8.9% (−0.4624) |
−0.5842 to −0.2865 |
gain > 0; gain > 0.05 × |baseline median|; arm medians separated |
PASSED |
constructed_rand20_ns/query |
5.012 |
4.741 |
−5.2% (−0.2596) |
−0.3722 to −0.1156 |
loss ≤ 0.05 × |baseline median| |
PASSED |
constructed_rand200_ns/query |
4.543 |
4.456 |
−0.0898 |
−0.1719 to +0.01941 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit1_ns/query |
4.43 |
4.353 |
−0.08808 |
−0.2607 to +0.01185 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit2_ns/query |
6.284 |
5.461 |
−13.2% (−0.8304) |
−0.9734 to −0.7415 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit3_ns/query |
8.015 |
5.899 |
−26.3% (−2.108) |
−2.303 to −1.99 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit4_ns/query |
9.418 |
6.394 |
−32.1% (−3.023) |
−3.126 to −2.928 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit5_ns/query |
12.01 |
7.206 |
−40% (−4.8) |
−5.888 to −4.169 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit6_ns/query |
13.12 |
8.532 |
−35.3% (−4.629) |
−5.453 to −4.336 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit7_ns/query |
16.23 |
9.066 |
−44.5% (−7.22) |
−8.03 to −6.493 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit8_ns/query |
17.52 |
9.528 |
−45% (−7.88) |
−8.473 to −7.257 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit9_ns/query |
19.84 |
10.23 |
−48.7% (−9.666) |
−10.15 to −8.865 |
loss ≤ 0.05 × |baseline median| |
PASSED |
alternating_hit10_ns/query |
21.29 |
11.25 |
−47.1% (−10.03) |
−10.31 to −9.521 |
loss ≤ 0.05 × |baseline median| |
PASSED |
interleave100_ns/query |
294.6 |
198 |
−33.7% (−99.4) |
−133 to −79.89 |
gain > 0; gain > 0.05 × |baseline median|; arm medians separated |
PASSED |
interleave2000_ns/query |
6448 |
4005 |
−36.3% (−2341) |
−2789 to −1522 |
gain > 0; gain > 0.05 × |baseline median|; arm medians separated |
PASSED |
prefix4000_ns/query |
4038 |
32.08 |
−99.2% (−4006) |
−4097 to −3980 |
gain > 0; gain > 0.05 × |baseline median|; arm medians separated |
PASSED |
skew4000_4_ns/query |
3997 |
48.69 |
−98.8% (−3948) |
−3999 to −3922 |
gain > 0; gain > 0.05 × |baseline median|; arm medians separated |
PASSED |
long_tiny_ns/query |
5.019 |
4.681 |
−6.7% (−0.3384) |
−0.4504 to −0.2067 |
loss ≤ 0.05 × |baseline median| |
PASSED |
native_weather_ns/query |
738.7 |
681.9 |
−7.8% (−57.64) |
−66.53 to −40.97 |
loss ≤ 0.05 × |baseline median| |
PASSED |
full_left_ns/query |
5.997 |
7.121 |
+17.2% (+1.03) |
+0.4036 to +1.379 |
loss ≤ stated 0.5 × |baseline median| |
PASSED |
full_right_ns/query |
6.422 |
6.95 |
+7.8% (+0.498) |
+0.3432 to +0.7827 |
loss ≤ stated 0.5 × |baseline median| |
PASSED |
full_full_ns/query |
5.969 |
6.923 |
+15.6% (+0.9306) |
+0.6598 to +1.175 |
loss ≤ stated 0.5 × |baseline median| |
PASSED |
Checks: 3 of 3 passed. Verification: no defect found.
Timeline
2026-10-22· Case opened2026-10-23· PR opened2026-11-07· Case closed2026-11-07· Case closed