tisonkun commented on PR #325:
URL: 
https://github.com/apache/datasketches-rust/pull/325#issuecomment-6645452268

   ## Focused XOR benchmark results
   
   This refactor keeps construction and query performance near the preceding 
revision; it does not claim a new broad speedup. The matrix now covers **45 
scenarios / 93 implementation rows per profile**, replacing the forced-retry 
and adjacent-cardinality cases with representative build sizes. Deduplicating 
comparisons include the same collect/sort/deduplicate work on both sides and 
use repeated values.
   
   Counts below mean **lower / equal / higher elapsed-time medians versus 
xorf**. They are not statistical wins or an aggregate score.
   
   | Workload                   | Ordinary bench | Fat LTO, one codegen unit |
   | -------------------------- | -------------- | ------------------------- |
   | Distinct builds            | 6 / 0 / 3      | 6 / 0 / 3                 |
   | Deduplicating builds       | 9 / 0 / 0      | 9 / 0 / 0                 |
   | Independent-filter batches | 6 / 0 / 0      | 6 / 0 / 0                 |
   | Single-filter queries      | 11 / 1 / 0     | 10 / 0 / 2                |
   | Imported-filter queries    | 12 / 0 / 0     | 7 / 0 / 5                 |
   
   The default-seed 16K distinct builds still need an extra attempt and remain 
slower. LTO also has seven query medians 1.0%–2.2% above xorf; six of those 
seven sample ranges overlap. Exact remaining gaps are listed below alongside 
all results. The changed build definitions establish a new baseline: 
improvements relative to xorf in the deduplicating rows must not be interpreted 
as before/after speedups caused by the refactor.
   
   Both profiles use optimized Cargo bench builds with five repeats, fixed 
rounds, and setup/cleanup included. Apple M4 Max, macOS arm64, rustc 
1.101.0-nightly (8006091eb, 2026-10-17), xorf 0.13.0. Measured production and 
benchmark code: `5cb4807`; `e200080` only simplifies a unit test. The [ScopeDB 
end-to-end 
report](https://github.com/scopedb/scopedb/pull/3647#issuecomment-6645387830) 
separately measures real ingestion and query paths with ThinLTO.
   
   <details>
   <summary>Reproduction and before/after checks</summary>
   
   `cargo x bench -- xor --repeat 5 --raw`
   
   `CARGO_PROFILE_BENCH_LTO=fat CARGO_PROFILE_BENCH_CODEGEN_UNITS=1 cargo x 
bench -- xor --repeat 5 --raw`
   
   Before/after checks used identical retained benchmark definitions on 
`541f87e` and this change, with three repetitions. Independent-filter batch 
medians changed from 265/149/173 ms to 267/148/170 ms for 128/16K/50K inputs. 
Single-filter build changes ranged from -2.7% to +2.2%, and query changes from 
-4.1% to +2.5%. These small mixed differences do not establish a new general 
performance improvement.
   
   </details>
   
   <details>
   <summary>Every remaining above-xorf median</summary>
   
   | Profile                   | Scenario                            | DS entry 
    | DS ms | xorf ms | More elapsed time | Ranges overlap |
   | ------------------------- | ----------------------------------- | 
------------ | ----- | ------- | ----------------- | -------------- |
   | Ordinary bench            | xor::build::8_distinct/16384        | 
DataSketches | 361   | 279     | +29.4%            | no             |
   | Ordinary bench            | xor::build::16_distinct/16384       | 
DataSketches | 361   | 280     | +28.9%            | no             |
   | Ordinary bench            | xor::build::32_distinct/16384       | 
DataSketches | 366   | 284     | +28.9%            | no             |
   | Fat LTO, one codegen unit | xor::build::8_distinct/16384        | 
DataSketches | 357   | 279     | +28.0%            | no             |
   | Fat LTO, one codegen unit | xor::build::16_distinct/16384       | 
DataSketches | 365   | 288     | +26.7%            | no             |
   | Fat LTO, one codegen unit | xor::build::32_distinct/16384       | 
DataSketches | 366   | 284     | +28.9%            | no             |
   | Fat LTO, one codegen unit | xor::query::16_present/50000        | 
DataSketches | 238   | 235     | +1.3%             | no             |
   | Fat LTO, one codegen unit | xor::query::16_absent/50000         | 
DataSketches | 239   | 235     | +1.7%             | yes            |
   | Fat LTO, one codegen unit | xor::query_shards::8_absent/16384   | 
DataSketches | 358   | 351     | +2.0%             | yes            |
   | Fat LTO, one codegen unit | xor::query_shards::16_present/128   | 
DataSketches | 289   | 286     | +1.0%             | yes            |
   | Fat LTO, one codegen unit | xor::query_shards::16_present/16384 | 
DataSketches | 362   | 358     | +1.1%             | yes            |
   | Fat LTO, one codegen unit | xor::query_shards::16_absent/16384  | 
DataSketches | 370   | 364     | +1.6%             | yes            |
   | Fat LTO, one codegen unit | xor::query_shards::32_absent/16384  | 
DataSketches | 370   | 362     | +2.2%             | yes            |
   
   </details>
   
   <details>
   <summary>All measurements and raw samples (ms)</summary>
   
   Delta = (DataSketches median / xorf median − 1) × 100%; negative means less 
elapsed time. Each scenario keeps identical work and rounds across 
implementations.
   
   ### Ordinary bench
   
   | Scenario                            | Implementation | Rounds | Median | 
Min–max | Raw samples             | Delta vs xorf |
   | ----------------------------------- | -------------- | ------ | ------ | 
------- | ----------------------- | ------------- |
   | xor::build::8_distinct/1000         | DataSketches   | 60000  | 305    | 
302–322 | 322, 303, 302, 305, 305 | -33.4%        |
   | xor::build::8_distinct/1000         | xorf           | 60000  | 458    | 
453–459 | 458, 459, 453, 456, 458 | reference     |
   | xor::build::8_deduplicate/1000      | DataSketches   | 60000  | 356    | 
355–359 | 355, 359, 357, 356, 356 | -11.7%        |
   | xor::build::8_deduplicate/1000      | xorf           | 60000  | 403    | 
400–411 | 400, 411, 401, 403, 403 | reference     |
   | xor::build::16_distinct/1000        | DataSketches   | 60000  | 300    | 
299–301 | 300, 301, 301, 300, 299 | -35.5%        |
   | xor::build::16_distinct/1000        | xorf           | 60000  | 465    | 
461–466 | 461, 465, 466, 466, 464 | reference     |
   | xor::build::16_deduplicate/1000     | DataSketches   | 60000  | 354    | 
352–359 | 359, 354, 353, 357, 352 | -11.1%        |
   | xor::build::16_deduplicate/1000     | xorf           | 60000  | 398    | 
395–406 | 396, 398, 395, 400, 406 | reference     |
   | xor::build::32_distinct/1000        | DataSketches   | 60000  | 308    | 
308–311 | 311, 308, 309, 308, 308 | -34.6%        |
   | xor::build::32_distinct/1000        | xorf           | 60000  | 471    | 
470–474 | 473, 474, 470, 471, 470 | reference     |
   | xor::build::32_deduplicate/1000     | DataSketches   | 60000  | 356    | 
354–361 | 359, 356, 361, 356, 354 | -10.8%        |
   | xor::build::32_deduplicate/1000     | xorf           | 60000  | 399    | 
398–402 | 402, 399, 400, 398, 398 | reference     |
   | xor::build::8_distinct/16384        | DataSketches   | 2000   | 361    | 
359–363 | 359, 361, 361, 363, 360 | +29.4%        |
   | xor::build::8_distinct/16384        | xorf           | 2000   | 279    | 
276–292 | 292, 276, 279, 277, 280 | reference     |
   | xor::build::8_deduplicate/16384     | DataSketches   | 2000   | 249    | 
248–250 | 248, 248, 249, 250, 250 | -8.8%         |
   | xor::build::8_deduplicate/16384     | xorf           | 2000   | 273    | 
271–274 | 273, 271, 274, 273, 273 | reference     |
   | xor::build::16_distinct/16384       | DataSketches   | 2000   | 361    | 
359–364 | 359, 361, 362, 361, 364 | +28.9%        |
   | xor::build::16_distinct/16384       | xorf           | 2000   | 280    | 
275–285 | 285, 277, 281, 275, 280 | reference     |
   | xor::build::16_deduplicate/16384    | DataSketches   | 2000   | 249    | 
245–254 | 245, 254, 248, 249, 249 | -7.8%         |
   | xor::build::16_deduplicate/16384    | xorf           | 2000   | 270    | 
269–270 | 270, 270, 269, 270, 270 | reference     |
   | xor::build::32_distinct/16384       | DataSketches   | 2000   | 366    | 
364–377 | 364, 374, 366, 377, 365 | +28.9%        |
   | xor::build::32_distinct/16384       | xorf           | 2000   | 284    | 
280–288 | 288, 283, 284, 280, 284 | reference     |
   | xor::build::32_deduplicate/16384    | DataSketches   | 2000   | 250    | 
248–261 | 250, 261, 250, 248, 251 | -7.7%         |
   | xor::build::32_deduplicate/16384    | xorf           | 2000   | 271    | 
270–273 | 270, 271, 272, 273, 271 | reference     |
   | xor::build::8_distinct/1000000      | DataSketches   | 12     | 159    | 
154–161 | 161, 159, 159, 154, 154 | -41.3%        |
   | xor::build::8_distinct/1000000      | xorf           | 12     | 271    | 
269–280 | 280, 273, 271, 269, 270 | reference     |
   | xor::build::8_deduplicate/1000000   | DataSketches   | 12     | 152    | 
151–154 | 154, 151, 152, 152, 153 | -13.6%        |
   | xor::build::8_deduplicate/1000000   | xorf           | 12     | 176    | 
174–180 | 174, 179, 175, 180, 176 | reference     |
   | xor::build::16_distinct/1000000     | DataSketches   | 12     | 158    | 
156–163 | 163, 160, 158, 156, 156 | -42.5%        |
   | xor::build::16_distinct/1000000     | xorf           | 12     | 275    | 
272–280 | 280, 275, 278, 274, 272 | reference     |
   | xor::build::16_deduplicate/1000000  | DataSketches   | 12     | 153    | 
151–153 | 153, 152, 151, 153, 153 | -12.1%        |
   | xor::build::16_deduplicate/1000000  | xorf           | 12     | 174    | 
173–175 | 174, 173, 173, 175, 174 | reference     |
   | xor::build::32_distinct/1000000     | DataSketches   | 12     | 159    | 
157–163 | 163, 160, 159, 157, 157 | -41.5%        |
   | xor::build::32_distinct/1000000     | xorf           | 12     | 272    | 
270–282 | 282, 272, 279, 271, 270 | reference     |
   | xor::build::32_deduplicate/1000000  | DataSketches   | 12     | 154    | 
151–154 | 154, 151, 153, 154, 154 | -11.5%        |
   | xor::build::32_deduplicate/1000000  | xorf           | 12     | 174    | 
173–180 | 173, 174, 173, 176, 180 | reference     |
   | xor::build_batches::8/128           | default_seed   | 10000  | 263    | 
262–272 | 272, 262, 263, 262, 263 | -34.9%        |
   | xor::build_batches::8/128           | matched_seed   | 10000  | 272    | 
270–274 | 274, 272, 271, 270, 273 | -32.7%        |
   | xor::build_batches::8/128           | xorf           | 10000  | 404    | 
403–406 | 405, 403, 406, 404, 404 | reference     |
   | xor::build_batches::8/16384         | default_seed   | 40     | 151    | 
151–153 | 152, 151, 153, 151, 151 | -58.1%        |
   | xor::build_batches::8/16384         | matched_seed   | 40     | 142    | 
140–145 | 145, 142, 142, 140, 141 | -60.6%        |
   | xor::build_batches::8/16384         | xorf           | 40     | 360    | 
359–361 | 360, 360, 361, 359, 361 | reference     |
   | xor::build_batches::8/50000         | default_seed   | 12     | 172    | 
171–172 | 172, 172, 171, 172, 171 | -48.3%        |
   | xor::build_batches::8/50000         | matched_seed   | 12     | 167    | 
167–170 | 167, 167, 167, 170, 167 | -49.8%        |
   | xor::build_batches::8/50000         | xorf           | 12     | 333    | 
332–340 | 333, 340, 333, 335, 332 | reference     |
   | xor::query::8_present/16384         | DataSketches   | 10000  | 275    | 
272–280 | 275, 273, 272, 280, 276 | -3.2%         |
   | xor::query::8_present/16384         | xorf           | 10000  | 284    | 
282–286 | 282, 283, 285, 284, 286 | reference     |
   | xor::query::8_present/50000         | DataSketches   | 3000   | 247    | 
245–248 | 247, 246, 245, 248, 247 | -3.9%         |
   | xor::query::8_present/50000         | xorf           | 3000   | 257    | 
257–257 | 257, 257, 257, 257, 257 | reference     |
   | xor::query::8_absent/16384          | DataSketches   | 10000  | 267    | 
265–269 | 267, 267, 269, 267, 265 | -7.0%         |
   | xor::query::8_absent/16384          | xorf           | 10000  | 287    | 
283–290 | 286, 290, 287, 287, 283 | reference     |
   | xor::query::8_absent/50000          | DataSketches   | 3000   | 243    | 
242–244 | 244, 242, 244, 243, 242 | -5.4%         |
   | xor::query::8_absent/50000          | xorf           | 3000   | 257    | 
255–260 | 258, 255, 260, 257, 257 | reference     |
   | xor::query::16_present/16384        | DataSketches   | 10000  | 277    | 
276–278 | 278, 276, 276, 277, 277 | -2.1%         |
   | xor::query::16_present/16384        | xorf           | 10000  | 283    | 
282–288 | 283, 284, 282, 282, 288 | reference     |
   | xor::query::16_present/50000        | DataSketches   | 3000   | 267    | 
267–270 | 267, 270, 267, 267, 267 | 0.0%          |
   | xor::query::16_present/50000        | xorf           | 3000   | 267    | 
267–269 | 267, 267, 268, 267, 269 | reference     |
   | xor::query::16_absent/16384         | DataSketches   | 10000  | 273    | 
271–275 | 271, 274, 275, 273, 273 | -3.9%         |
   | xor::query::16_absent/16384         | xorf           | 10000  | 284    | 
283–290 | 284, 285, 290, 283, 284 | reference     |
   | xor::query::16_absent/50000         | DataSketches   | 3000   | 266    | 
265–266 | 265, 266, 266, 266, 265 | -1.5%         |
   | xor::query::16_absent/50000         | xorf           | 3000   | 270    | 
269–274 | 269, 272, 270, 270, 274 | reference     |
   | xor::query::32_present/16384        | DataSketches   | 10000  | 268    | 
265–276 | 268, 276, 275, 268, 265 | -5.6%         |
   | xor::query::32_present/16384        | xorf           | 10000  | 284    | 
283–290 | 285, 284, 283, 290, 284 | reference     |
   | xor::query::32_present/50000        | DataSketches   | 3000   | 280    | 
279–281 | 280, 279, 279, 281, 281 | -8.5%         |
   | xor::query::32_present/50000        | xorf           | 3000   | 306    | 
304–313 | 306, 306, 306, 313, 304 | reference     |
   | xor::query::32_absent/16384         | DataSketches   | 10000  | 273    | 
267–275 | 267, 269, 275, 273, 273 | -8.4%         |
   | xor::query::32_absent/16384         | xorf           | 10000  | 298    | 
287–305 | 287, 298, 292, 305, 298 | reference     |
   | xor::query::32_absent/50000         | DataSketches   | 3000   | 286    | 
285–297 | 297, 286, 291, 285, 285 | -6.2%         |
   | xor::query::32_absent/50000         | xorf           | 3000   | 305    | 
304–322 | 322, 305, 305, 304, 305 | reference     |
   | xor::query_shards::8_present/128    | DataSketches   | 20000  | 277    | 
276–281 | 277, 277, 276, 278, 281 | -14.2%        |
   | xor::query_shards::8_present/128    | xorf           | 20000  | 323    | 
322–327 | 327, 323, 322, 323, 325 | reference     |
   | xor::query_shards::8_absent/128     | DataSketches   | 20000  | 278    | 
276–283 | 278, 278, 276, 277, 283 | -14.7%        |
   | xor::query_shards::8_absent/128     | xorf           | 20000  | 326    | 
324–333 | 324, 333, 326, 326, 328 | reference     |
   | xor::query_shards::8_present/16384  | DataSketches   | 20000  | 354    | 
349–355 | 355, 350, 354, 355, 349 | -15.7%        |
   | xor::query_shards::8_present/16384  | xorf           | 20000  | 420    | 
416–423 | 418, 421, 420, 423, 416 | reference     |
   | xor::query_shards::8_absent/16384   | DataSketches   | 20000  | 348    | 
347–355 | 352, 347, 355, 348, 348 | -17.5%        |
   | xor::query_shards::8_absent/16384   | xorf           | 20000  | 422    | 
413–425 | 421, 413, 422, 425, 422 | reference     |
   | xor::query_shards::16_present/128   | DataSketches   | 20000  | 286    | 
283–287 | 286, 283, 286, 285, 287 | -12.8%        |
   | xor::query_shards::16_present/128   | xorf           | 20000  | 328    | 
326–328 | 326, 326, 328, 328, 328 | reference     |
   | xor::query_shards::16_absent/128    | DataSketches   | 20000  | 285    | 
283–293 | 285, 293, 284, 283, 285 | -12.6%        |
   | xor::query_shards::16_absent/128    | xorf           | 20000  | 326    | 
325–327 | 326, 326, 325, 326, 327 | reference     |
   | xor::query_shards::16_present/16384 | DataSketches   | 20000  | 364    | 
358–367 | 364, 358, 363, 367, 364 | -13.9%        |
   | xor::query_shards::16_present/16384 | xorf           | 20000  | 423    | 
422–428 | 423, 428, 423, 424, 422 | reference     |
   | xor::query_shards::16_absent/16384  | DataSketches   | 20000  | 363    | 
361–365 | 363, 361, 365, 363, 364 | -15.2%        |
   | xor::query_shards::16_absent/16384  | xorf           | 20000  | 428    | 
426–433 | 433, 432, 428, 426, 426 | reference     |
   | xor::query_shards::32_present/128   | DataSketches   | 20000  | 277    | 
275–279 | 279, 276, 275, 278, 277 | -23.9%        |
   | xor::query_shards::32_present/128   | xorf           | 20000  | 364    | 
363–365 | 364, 364, 365, 363, 363 | reference     |
   | xor::query_shards::32_absent/128    | DataSketches   | 20000  | 278    | 
276–291 | 276, 277, 279, 291, 278 | -23.2%        |
   | xor::query_shards::32_absent/128    | xorf           | 20000  | 362    | 
356–364 | 362, 364, 356, 359, 362 | reference     |
   | xor::query_shards::32_present/16384 | DataSketches   | 20000  | 372    | 
368–373 | 368, 373, 369, 372, 372 | -16.2%        |
   | xor::query_shards::32_present/16384 | xorf           | 20000  | 444    | 
441–446 | 446, 444, 446, 441, 442 | reference     |
   | xor::query_shards::32_absent/16384  | DataSketches   | 20000  | 367    | 
360–375 | 375, 360, 367, 368, 366 | -17.3%        |
   | xor::query_shards::32_absent/16384  | xorf           | 20000  | 444    | 
442–450 | 450, 443, 448, 442, 444 | reference     |
   
   ### Fat LTO, one codegen unit
   
   | Scenario                            | Implementation | Rounds | Median | 
Min–max | Raw samples             | Delta vs xorf |
   | ----------------------------------- | -------------- | ------ | ------ | 
------- | ----------------------- | ------------- |
   | xor::build::8_distinct/1000         | DataSketches   | 60000  | 315    | 
315–334 | 334, 319, 315, 315, 315 | -32.7%        |
   | xor::build::8_distinct/1000         | xorf           | 60000  | 468    | 
468–488 | 468, 488, 470, 468, 468 | reference     |
   | xor::build::8_deduplicate/1000      | DataSketches   | 60000  | 365    | 
365–371 | 365, 371, 365, 365, 367 | -10.3%        |
   | xor::build::8_deduplicate/1000      | xorf           | 60000  | 407    | 
407–411 | 407, 408, 411, 407, 407 | reference     |
   | xor::build::16_distinct/1000        | DataSketches   | 60000  | 318    | 
314–382 | 318, 382, 318, 316, 314 | -32.2%        |
   | xor::build::16_distinct/1000        | xorf           | 60000  | 469    | 
466–479 | 468, 477, 479, 469, 466 | reference     |
   | xor::build::16_deduplicate/1000     | DataSketches   | 60000  | 360    | 
356–366 | 365, 366, 360, 358, 356 | -10.9%        |
   | xor::build::16_deduplicate/1000     | xorf           | 60000  | 404    | 
401–410 | 410, 404, 405, 401, 401 | reference     |
   | xor::build::32_distinct/1000        | DataSketches   | 60000  | 304    | 
303–306 | 303, 306, 304, 304, 303 | -33.9%        |
   | xor::build::32_distinct/1000        | xorf           | 60000  | 460    | 
457–470 | 470, 464, 459, 457, 460 | reference     |
   | xor::build::32_deduplicate/1000     | DataSketches   | 60000  | 360    | 
357–364 | 361, 360, 357, 364, 358 | -11.1%        |
   | xor::build::32_deduplicate/1000     | xorf           | 60000  | 405    | 
401–407 | 405, 407, 406, 403, 401 | reference     |
   | xor::build::8_distinct/16384        | DataSketches   | 2000   | 357    | 
354–361 | 355, 361, 360, 357, 354 | +28.0%        |
   | xor::build::8_distinct/16384        | xorf           | 2000   | 279    | 
278–285 | 279, 278, 285, 278, 280 | reference     |
   | xor::build::8_deduplicate/16384     | DataSketches   | 2000   | 253    | 
251–258 | 255, 252, 251, 258, 253 | -9.0%         |
   | xor::build::8_deduplicate/16384     | xorf           | 2000   | 278    | 
277–303 | 278, 277, 281, 303, 278 | reference     |
   | xor::build::16_distinct/16384       | DataSketches   | 2000   | 365    | 
363–368 | 365, 364, 363, 368, 368 | +26.7%        |
   | xor::build::16_distinct/16384       | xorf           | 2000   | 288    | 
286–292 | 292, 288, 288, 286, 290 | reference     |
   | xor::build::16_deduplicate/16384    | DataSketches   | 2000   | 253    | 
250–254 | 253, 254, 251, 250, 254 | -8.7%         |
   | xor::build::16_deduplicate/16384    | xorf           | 2000   | 277    | 
274–281 | 276, 281, 277, 274, 278 | reference     |
   | xor::build::32_distinct/16384       | DataSketches   | 2000   | 366    | 
362–374 | 362, 370, 374, 366, 366 | +28.9%        |
   | xor::build::32_distinct/16384       | xorf           | 2000   | 284    | 
282–290 | 284, 288, 290, 284, 282 | reference     |
   | xor::build::32_deduplicate/16384    | DataSketches   | 2000   | 253    | 
248–259 | 259, 248, 250, 253, 254 | -8.7%         |
   | xor::build::32_deduplicate/16384    | xorf           | 2000   | 277    | 
275–278 | 278, 275, 275, 277, 277 | reference     |
   | xor::build::8_distinct/1000000      | DataSketches   | 12     | 154    | 
153–158 | 158, 153, 154, 155, 153 | -42.3%        |
   | xor::build::8_distinct/1000000      | xorf           | 12     | 267    | 
255–278 | 278, 263, 255, 270, 267 | reference     |
   | xor::build::8_deduplicate/1000000   | DataSketches   | 12     | 152    | 
150–152 | 150, 152, 151, 152, 152 | -12.6%        |
   | xor::build::8_deduplicate/1000000   | xorf           | 12     | 174    | 
172–176 | 172, 176, 174, 174, 174 | reference     |
   | xor::build::16_distinct/1000000     | DataSketches   | 12     | 160    | 
152–167 | 160, 153, 152, 163, 167 | -39.8%        |
   | xor::build::16_distinct/1000000     | xorf           | 12     | 266    | 
260–277 | 273, 260, 260, 266, 277 | reference     |
   | xor::build::16_deduplicate/1000000  | DataSketches   | 12     | 153    | 
151–154 | 153, 151, 152, 154, 153 | -12.6%        |
   | xor::build::16_deduplicate/1000000  | xorf           | 12     | 175    | 
174–176 | 174, 174, 175, 176, 176 | reference     |
   | xor::build::32_distinct/1000000     | DataSketches   | 12     | 157    | 
155–161 | 160, 155, 155, 161, 157 | -42.3%        |
   | xor::build::32_distinct/1000000     | xorf           | 12     | 272    | 
265–289 | 284, 272, 265, 272, 289 | reference     |
   | xor::build::32_deduplicate/1000000  | DataSketches   | 12     | 153    | 
152–154 | 153, 152, 153, 154, 154 | -13.1%        |
   | xor::build::32_deduplicate/1000000  | xorf           | 12     | 176    | 
175–177 | 175, 175, 176, 176, 177 | reference     |
   | xor::build_batches::8/128           | default_seed   | 10000  | 271    | 
269–273 | 271, 273, 273, 271, 269 | -32.8%        |
   | xor::build_batches::8/128           | matched_seed   | 10000  | 267    | 
267–273 | 273, 267, 271, 267, 267 | -33.7%        |
   | xor::build_batches::8/128           | xorf           | 10000  | 403    | 
401–413 | 403, 403, 410, 401, 413 | reference     |
   | xor::build_batches::8/16384         | default_seed   | 40     | 152    | 
148–152 | 150, 152, 152, 152, 148 | -57.7%        |
   | xor::build_batches::8/16384         | matched_seed   | 40     | 141    | 
138–143 | 138, 140, 142, 143, 141 | -60.7%        |
   | xor::build_batches::8/16384         | xorf           | 40     | 359    | 
357–362 | 357, 357, 362, 361, 359 | reference     |
   | xor::build_batches::8/50000         | default_seed   | 12     | 173    | 
171–174 | 171, 171, 173, 173, 174 | -47.9%        |
   | xor::build_batches::8/50000         | matched_seed   | 12     | 169    | 
168–173 | 170, 169, 169, 168, 173 | -49.1%        |
   | xor::build_batches::8/50000         | xorf           | 12     | 332    | 
329–336 | 332, 329, 336, 332, 331 | reference     |
   | xor::query::8_present/16384         | DataSketches   | 10000  | 248    | 
247–252 | 248, 247, 248, 252, 249 | -1.2%         |
   | xor::query::8_present/16384         | xorf           | 10000  | 251    | 
250–254 | 251, 252, 250, 251, 254 | reference     |
   | xor::query::8_present/50000         | DataSketches   | 3000   | 224    | 
220–225 | 224, 224, 225, 220, 220 | -3.0%         |
   | xor::query::8_present/50000         | xorf           | 3000   | 231    | 
226–236 | 236, 236, 229, 226, 231 | reference     |
   | xor::query::8_absent/16384          | DataSketches   | 10000  | 248    | 
244–248 | 248, 244, 248, 247, 248 | -1.2%         |
   | xor::query::8_absent/16384          | xorf           | 10000  | 251    | 
249–253 | 251, 251, 253, 249, 252 | reference     |
   | xor::query::8_absent/50000          | DataSketches   | 3000   | 221    | 
221–226 | 226, 221, 221, 223, 221 | -3.1%         |
   | xor::query::8_absent/50000          | xorf           | 3000   | 228    | 
224–233 | 233, 226, 229, 228, 224 | reference     |
   | xor::query::16_present/16384        | DataSketches   | 10000  | 251    | 
249–253 | 250, 251, 252, 253, 249 | -2.0%         |
   | xor::query::16_present/16384        | xorf           | 10000  | 256    | 
252–257 | 256, 257, 256, 257, 252 | reference     |
   | xor::query::16_present/50000        | DataSketches   | 3000   | 238    | 
236–241 | 236, 238, 240, 241, 238 | +1.3%         |
   | xor::query::16_present/50000        | xorf           | 3000   | 235    | 
234–235 | 235, 235, 234, 235, 234 | reference     |
   | xor::query::16_absent/16384         | DataSketches   | 10000  | 252    | 
250–256 | 256, 251, 250, 252, 253 | -1.2%         |
   | xor::query::16_absent/16384         | xorf           | 10000  | 255    | 
254–285 | 259, 285, 254, 254, 255 | reference     |
   | xor::query::16_absent/50000         | DataSketches   | 3000   | 239    | 
237–241 | 237, 241, 239, 239, 240 | +1.7%         |
   | xor::query::16_absent/50000         | xorf           | 3000   | 235    | 
230–241 | 231, 241, 236, 235, 230 | reference     |
   | xor::query::32_present/16384        | DataSketches   | 10000  | 244    | 
243–246 | 244, 246, 245, 243, 244 | -3.2%         |
   | xor::query::32_present/16384        | xorf           | 10000  | 252    | 
251–255 | 251, 252, 253, 251, 255 | reference     |
   | xor::query::32_present/50000        | DataSketches   | 3000   | 254    | 
248–258 | 254, 256, 258, 248, 249 | -3.8%         |
   | xor::query::32_present/50000        | xorf           | 3000   | 264    | 
262–270 | 264, 262, 270, 265, 263 | reference     |
   | xor::query::32_absent/16384         | DataSketches   | 10000  | 242    | 
241–243 | 241, 242, 243, 242, 243 | -6.6%         |
   | xor::query::32_absent/16384         | xorf           | 10000  | 259    | 
256–261 | 259, 256, 257, 259, 261 | reference     |
   | xor::query::32_absent/50000         | DataSketches   | 3000   | 248    | 
247–253 | 253, 247, 252, 248, 248 | -5.3%         |
   | xor::query::32_absent/50000         | xorf           | 3000   | 262    | 
259–268 | 261, 259, 262, 268, 265 | reference     |
   | xor::query_shards::8_present/128    | DataSketches   | 20000  | 277    | 
274–279 | 276, 278, 279, 274, 277 | -1.4%         |
   | xor::query_shards::8_present/128    | xorf           | 20000  | 281    | 
280–282 | 282, 281, 281, 280, 280 | reference     |
   | xor::query_shards::8_absent/128     | DataSketches   | 20000  | 277    | 
273–279 | 273, 277, 274, 279, 277 | -0.7%         |
   | xor::query_shards::8_absent/128     | xorf           | 20000  | 279    | 
277–286 | 277, 279, 278, 286, 283 | reference     |
   | xor::query_shards::8_present/16384  | DataSketches   | 20000  | 341    | 
341–345 | 341, 341, 341, 345, 345 | -1.2%         |
   | xor::query_shards::8_present/16384  | xorf           | 20000  | 345    | 
340–347 | 340, 345, 344, 346, 347 | reference     |
   | xor::query_shards::8_absent/16384   | DataSketches   | 20000  | 358    | 
352–358 | 358, 355, 358, 358, 352 | +2.0%         |
   | xor::query_shards::8_absent/16384   | xorf           | 20000  | 351    | 
349–355 | 355, 350, 349, 351, 351 | reference     |
   | xor::query_shards::16_present/128   | DataSketches   | 20000  | 289    | 
283–295 | 295, 293, 288, 289, 283 | +1.0%         |
   | xor::query_shards::16_present/128   | xorf           | 20000  | 286    | 
284–297 | 287, 297, 286, 284, 284 | reference     |
   | xor::query_shards::16_absent/128    | DataSketches   | 20000  | 284    | 
282–294 | 284, 282, 294, 283, 285 | -0.7%         |
   | xor::query_shards::16_absent/128    | xorf           | 20000  | 286    | 
281–289 | 284, 281, 289, 286, 287 | reference     |
   | xor::query_shards::16_present/16384 | DataSketches   | 20000  | 362    | 
359–365 | 362, 365, 359, 364, 360 | +1.1%         |
   | xor::query_shards::16_present/16384 | xorf           | 20000  | 358    | 
354–359 | 358, 358, 354, 359, 357 | reference     |
   | xor::query_shards::16_absent/16384  | DataSketches   | 20000  | 370    | 
368–375 | 368, 368, 370, 375, 370 | +1.6%         |
   | xor::query_shards::16_absent/16384  | xorf           | 20000  | 364    | 
360–372 | 372, 363, 360, 364, 367 | reference     |
   | xor::query_shards::32_present/128   | DataSketches   | 20000  | 277    | 
277–278 | 278, 277, 277, 277, 277 | -2.5%         |
   | xor::query_shards::32_present/128   | xorf           | 20000  | 284    | 
281–299 | 284, 299, 282, 281, 284 | reference     |
   | xor::query_shards::32_absent/128    | DataSketches   | 20000  | 276    | 
275–279 | 279, 276, 278, 275, 275 | -2.5%         |
   | xor::query_shards::32_absent/128    | xorf           | 20000  | 283    | 
281–290 | 283, 290, 283, 281, 282 | reference     |
   | xor::query_shards::32_present/16384 | DataSketches   | 20000  | 364    | 
359–368 | 364, 368, 364, 363, 359 | -0.5%         |
   | xor::query_shards::32_present/16384 | xorf           | 20000  | 366    | 
359–371 | 367, 371, 363, 366, 359 | reference     |
   | xor::query_shards::32_absent/16384  | DataSketches   | 20000  | 370    | 
364–380 | 364, 368, 372, 380, 370 | +2.2%         |
   | xor::query_shards::32_absent/16384  | xorf           | 20000  | 362    | 
361–367 | 367, 362, 367, 362, 361 | reference     |
   
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to