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

   ## Fixed-workload baseline
   
   Baseline for commit 
[70c2117](https://github.com/apache/datasketches-rust/commit/70c2117a5540d18e7a3fb19a863bfae6e1cf3138),
 measured on 2026-11-04. This is a fresh full run of the committed benchmark 
definitions: **207 scenarios, 279 scenario/implementation combinations, three 
repetitions each**. The results below retain all three measurements, including 
the first run and outliers.
   
   Environment: Apple M4 Max, 36 GiB RAM, macOS 26.6.2 (arm64); `rustc 
1.101.0-nightly (8006091eb 2026-10-17)`, LLVM 23.1.4; Cargo's optimized bench 
profile.
   
   Reproduce at the same revision with:
   
   ```sh
   cargo x bench -- --repeat 3 --raw
   ```
   
   The round counts are the committed defaults, with no automatic calibration 
or round override. Each round executes the complete workload closure; input 
sizes and inner batches are unchanged. The clock includes fixture construction, 
per-round input cloning where needed, result destruction, and cleanup. XOR 
peers share rounds and rotate execution order; matched-build cases check each 
constructed filter's expected seed directly.
   
   200 of 207 reference medians fall between 100 and 999 ms. Shorter results 
are retained as measured; equivalent faster strategies are not resized 
independently. Different scenario rows can have different work sizes, so the 
ranges below are a sizing overview, not a throughput ranking. This establishes 
a baseline for future revisions, not a before/after speedup claim or a timing 
threshold for CI. Old Divan numbers use different timing boundaries and should 
not be compared directly.
   
   | Sketch      | Scenarios | Implementation rows | Reference medians (ms) |
   | ----------- | --------- | ------------------- | ---------------------- |
   | bloom       | 3         | 3                   | 236–328                |
   | countmin    | 7         | 7                   | 256–332                |
   | cpc         | 6         | 6                   | 244–382                |
   | frequencies | 2         | 2                   | 232–319                |
   | hll         | 22        | 22                  | 185–686                |
   | kll         | 12        | 12                  | 199–323                |
   | req         | 8         | 8                   | 184–400                |
   | tdigest     | 89        | 89                  | 15–764                 |
   | theta       | 2         | 2                   | 286–324                |
   | tuple       | 2         | 2                   | 286–342                |
   | xor         | 54        | 126                 | 272–375                |
   
   All elapsed times below are integer milliseconds. `Runs` preserves 
measurement order; `vs ref` is the implementation median divided by the 
scenario's reference median before millisecond rounding. For example, `0.80x` 
means 20% less elapsed time for the same workload. In XOR build tables, 
`distinct` and `deduplicate` are DataSketches entry points; `xorf` is xorf 
0.13.0.
   
   <details>
   <summary>bloom: 3 scenarios, 3 implementation rows</summary>
   
   | Scenario                                         | Implementation | Rounds 
| Median ms | Min–max ms | Runs (ms)     | vs ref |
   | ------------------------------------------------ | -------------- | ------ 
| --------- | ---------- | ------------- | ------ |
   | `bloom::update::u64`                             | DataSketches   | 2000   
| 328       | 328–328    | 328, 328, 328 | 1.00x  |
   | `bloom::update::bytes_32`                        | DataSketches   | 1000   
| 236       | 235–236    | 236, 236, 235 | 1.00x  |
   | `bloom::update::contains_and_insert_present_u64` | DataSketches   | 2000   
| 256       | 255–257    | 255, 256, 257 | 1.00x  |
   
   </details>
   
   <details>
   <summary>countmin: 7 scenarios, 7 implementation rows</summary>
   
   | Scenario                       | Implementation | Rounds | Median ms | 
Min–max ms | Runs (ms)     | vs ref |
   | ------------------------------ | -------------- | ------ | --------- | 
---------- | ------------- | ------ |
   | `countmin::decay::u64/0.5`     | DataSketches   | 20000  | 288       | 
286–292    | 292, 286, 288 | 1.00x  |
   | `countmin::decay::u64/0.99`    | DataSketches   | 10000  | 292       | 
291–294    | 291, 294, 292 | 1.00x  |
   | `countmin::decay::u64/1.0`     | DataSketches   | 50000  | 326       | 
326–329    | 329, 326, 326 | 1.00x  |
   | `countmin::estimate::u64`      | DataSketches   | 2000   | 332       | 
329–338    | 329, 332, 338 | 1.00x  |
   | `countmin::estimate::bytes_32` | DataSketches   | 1000   | 256       | 
255–260    | 256, 260, 255 | 1.00x  |
   | `countmin::update::u64`        | DataSketches   | 2000   | 288       | 
288–289    | 288, 288, 289 | 1.00x  |
   | `countmin::update::bytes_32`   | DataSketches   | 1000   | 261       | 
260–267    | 260, 267, 261 | 1.00x  |
   
   </details>
   
   <details>
   <summary>cpc: 6 scenarios, 6 implementation rows</summary>
   
   | Scenario                       | Implementation | Rounds | Median ms | 
Min–max ms | Runs (ms)     | vs ref |
   | ------------------------------ | -------------- | ------ | --------- | 
---------- | ------------- | ------ |
   | `cpc::serde::serialize/200`    | DataSketches   | 400000 | 382       | 
377–382    | 382, 382, 377 | 1.00x  |
   | `cpc::serde::serialize/8000`   | DataSketches   | 500000 | 376       | 
373–378    | 373, 376, 378 | 1.00x  |
   | `cpc::serde::deserialize/200`  | DataSketches   | 400000 | 356       | 
353–361    | 356, 361, 353 | 1.00x  |
   | `cpc::serde::deserialize/8000` | DataSketches   | 100000 | 244       | 
244–244    | 244, 244, 244 | 1.00x  |
   | `cpc::update::u64`             | DataSketches   | 3000   | 353       | 
351–357    | 357, 353, 351 | 1.00x  |
   | `cpc::update::bytes_32`        | DataSketches   | 2000   | 278       | 
277–279    | 279, 277, 278 | 1.00x  |
   
   </details>
   
   <details>
   <summary>frequencies: 2 scenarios, 2 implementation rows</summary>
   
   | Scenario                        | Implementation | Rounds | Median ms | 
Min–max ms | Runs (ms)     | vs ref |
   | ------------------------------- | -------------- | ------ | --------- | 
---------- | ------------- | ------ |
   | `frequencies::update::u64`      | DataSketches   | 2000   | 232       | 
218–239    | 239, 232, 218 | 1.00x  |
   | `frequencies::update::bytes_32` | DataSketches   | 900    | 319       | 
319–323    | 319, 323, 319 | 1.00x  |
   
   </details>
   
   <details>
   <summary>hll: 22 scenarios, 22 implementation rows</summary>
   
   | Scenario                                       | Implementation | Rounds   
| Median ms | Min–max ms | Runs (ms)     | vs ref |
   | ---------------------------------------------- | -------------- | -------- 
| --------- | ---------- | ------------- | ------ |
   | `hll::serde::serialize_union/0`                | DataSketches   | 15000000 
| 311       | 307–314    | 314, 311, 307 | 1.00x  |
   | `hll::serde::serialize_union/4`                | DataSketches   | 12000000 
| 266       | 262–268    | 266, 262, 268 | 1.00x  |
   | `hll::serde::serialize_union/100`              | DataSketches   | 2000000  
| 342       | 340–348    | 340, 348, 342 | 1.00x  |
   | `hll::serde::serialize_union/80000`            | DataSketches   | 90000    
| 308       | 305–319    | 319, 305, 308 | 1.00x  |
   | `hll::serde::serialize_union_via_sketch/0`     | DataSketches   | 15000000 
| 686       | 676–687    | 687, 676, 686 | 1.00x  |
   | `hll::serde::serialize_union_via_sketch/4`     | DataSketches   | 12000000 
| 574       | 564–574    | 564, 574, 574 | 1.00x  |
   | `hll::serde::serialize_union_via_sketch/100`   | DataSketches   | 2000000  
| 419       | 412–423    | 412, 419, 423 | 1.00x  |
   | `hll::serde::serialize_union_via_sketch/80000` | DataSketches   | 90000    
| 625       | 616–637    | 637, 616, 625 | 1.00x  |
   | `hll::union::empty_from_dense/12`              | DataSketches   | 2000000  
| 185       | 184–188    | 185, 184, 188 | 1.00x  |
   | `hll::union::empty_from_dense/18`              | DataSketches   | 70000    
| 242       | 241–243    | 242, 241, 243 | 1.00x  |
   | `hll::union::recreated_small_partials/12`      | DataSketches   | 500      
| 320       | 318–324    | 320, 318, 324 | 1.00x  |
   | `hll::union::recreated_small_partials/18`      | DataSketches   | 90       
| 312       | 308–314    | 314, 312, 308 | 1.00x  |
   | `hll::union::persistent_small_partials/12`     | DataSketches   | 500      
| 271       | 268–277    | 277, 271, 268 | 1.00x  |
   | `hll::union::persistent_small_partials/18`     | DataSketches   | 300      
| 313       | 312–320    | 320, 312, 313 | 1.00x  |
   | `hll::union::dense_partials/12`                | DataSketches   | 80000    
| 329       | 329–329    | 329, 329, 329 | 1.00x  |
   | `hll::union::dense_partials/18`                | DataSketches   | 700      
| 218       | 217–219    | 218, 219, 217 | 1.00x  |
   | `hll::union::dense_partials_with_queries/12`   | DataSketches   | 7000     
| 336       | 334–337    | 336, 334, 337 | 1.00x  |
   | `hll::union::dense_partials_with_queries/18`   | DataSketches   | 60       
| 320       | 320–320    | 320, 320, 320 | 1.00x  |
   | `hll::union::downsampled_dense_partials/12`    | DataSketches   | 6000     
| 255       | 251–259    | 255, 251, 259 | 1.00x  |
   | `hll::union::downsampled_dense_partials/18`    | DataSketches   | 80       
| 290       | 273–296    | 296, 290, 273 | 1.00x  |
   | `hll::update::u64`                             | DataSketches   | 6000     
| 278       | 275–287    | 287, 278, 275 | 1.00x  |
   | `hll::update::bytes_32`                        | DataSketches   | 2000     
| 253       | 252–256    | 256, 252, 253 | 1.00x  |
   
   </details>
   
   <details>
   <summary>kll: 12 scenarios, 12 implementation rows</summary>
   
   | Scenario                           | Implementation | Rounds    | Median 
ms | Min–max ms | Runs (ms)     | vs ref |
   | ---------------------------------- | -------------- | --------- | 
--------- | ---------- | ------------- | ------ |
   | `kll::merge::merge`                | DataSketches   | 70000     | 299      
 | 286–303    | 299, 303, 286 | 1.00x  |
   | `kll::query::rank`                 | DataSketches   | 7000000   | 290      
 | 290–291    | 290, 290, 291 | 1.00x  |
   | `kll::query::quantile/0.0`         | DataSketches   | 100000000 | 320      
 | 320–323    | 323, 320, 320 | 1.00x  |
   | `kll::query::quantile/0.5`         | DataSketches   | 100000    | 241      
 | 240–250    | 241, 240, 250 | 1.00x  |
   | `kll::query::quantile/1.0`         | DataSketches   | 100000000 | 323      
 | 321–325    | 321, 325, 323 | 1.00x  |
   | `kll::query::sorted_view_quantile` | DataSketches   | 40000000  | 280      
 | 279–280    | 280, 280, 279 | 1.00x  |
   | `kll::query::batch_quantiles`      | DataSketches   | 100000    | 264      
 | 255–264    | 264, 264, 255 | 1.00x  |
   | `kll::serde::serialize`            | DataSketches   | 200000    | 262      
 | 261–265    | 265, 262, 261 | 1.00x  |
   | `kll::serde::deserialize`          | DataSketches   | 100000    | 199      
 | 194–201    | 201, 199, 194 | 1.00x  |
   | `kll::update::update/1000`         | DataSketches   | 30000     | 287      
 | 280–296    | 280, 287, 296 | 1.00x  |
   | `kll::update::update/10000`        | DataSketches   | 2000      | 299      
 | 298–304    | 304, 298, 299 | 1.00x  |
   | `kll::update::update/100000`       | DataSketches   | 100       | 249      
 | 243–250    | 249, 250, 243 | 1.00x  |
   
   </details>
   
   <details>
   <summary>req: 8 scenarios, 8 implementation rows</summary>
   
   | Scenario                           | Implementation | Rounds    | Median 
ms | Min–max ms | Runs (ms)     | vs ref |
   | ---------------------------------- | -------------- | --------- | 
--------- | ---------- | ------------- | ------ |
   | `req::query::rank`                 | DataSketches   | 6000000   | 302      
 | 300–306    | 306, 302, 300 | 1.00x  |
   | `req::query::quantile/0.0`         | DataSketches   | 100000000 | 323      
 | 322–390    | 390, 322, 323 | 1.00x  |
   | `req::query::quantile/0.5`         | DataSketches   | 30000     | 324      
 | 321–324    | 324, 321, 324 | 1.00x  |
   | `req::query::quantile/1.0`         | DataSketches   | 100000000 | 324      
 | 321–326    | 321, 324, 326 | 1.00x  |
   | `req::query::sorted_view_quantile` | DataSketches   | 30000000  | 184      
 | 183–203    | 183, 184, 203 | 1.00x  |
   | `req::update::update/1000`         | DataSketches   | 20000     | 264      
 | 262–274    | 274, 262, 264 | 1.00x  |
   | `req::update::update/10000`        | DataSketches   | 2000      | 352      
 | 348–357    | 357, 352, 348 | 1.00x  |
   | `req::update::update/100000`       | DataSketches   | 200       | 400      
 | 399–401    | 399, 400, 401 | 1.00x  |
   
   </details>
   
   <details>
   <summary>tdigest: 89 scenarios, 89 implementation rows</summary>
   
   | Scenario                                                  | Implementation 
| Rounds   | Median ms | Min–max ms | Runs (ms)     | vs ref |
   | --------------------------------------------------------- | -------------- 
| -------- | --------- | ---------- | ------------- | ------ |
   | `tdigest::aggregation::serialized_borrowed/(1, 8)`        | DataSketches   
| 2000000  | 308       | 307–336    | 336, 307, 308 | 1.00x  |
   | `tdigest::aggregation::serialized_borrowed/(64, 8)`       | DataSketches   
| 9000     | 287       | 285–290    | 285, 290, 287 | 1.00x  |
   | `tdigest::aggregation::serialized_borrowed/(512, 8)`      | DataSketches   
| 800      | 283       | 277–292    | 292, 283, 277 | 1.00x  |
   | `tdigest::aggregation::serialized_borrowed/(64, 64)`      | DataSketches   
| 5000     | 325       | 321–326    | 321, 326, 325 | 1.00x  |
   | `tdigest::aggregation::serialized_borrowed/(512, 64)`     | DataSketches   
| 300      | 287       | 267–294    | 287, 267, 294 | 1.00x  |
   | `tdigest::aggregation::serialized_borrowed/(64, 4096)`    | DataSketches   
| 2000     | 254       | 251–257    | 254, 251, 257 | 1.00x  |
   | `tdigest::aggregation::serialized_owned/(1, 8)`           | DataSketches   
| 2000000  | 267       | 267–270    | 270, 267, 267 | 1.00x  |
   | `tdigest::aggregation::serialized_owned/(64, 8)`          | DataSketches   
| 9000     | 85        | 84–85      | 85, 84, 85    | 1.00x  |
   | `tdigest::aggregation::serialized_owned/(512, 8)`         | DataSketches   
| 800      | 77        | 73–81      | 81, 77, 73    | 1.00x  |
   | `tdigest::aggregation::serialized_owned/(64, 64)`         | DataSketches   
| 5000     | 268       | 267–269    | 268, 267, 269 | 1.00x  |
   | `tdigest::aggregation::serialized_owned/(512, 64)`        | DataSketches   
| 300      | 411       | 405–414    | 414, 411, 405 | 1.00x  |
   | `tdigest::aggregation::serialized_owned/(64, 4096)`       | DataSketches   
| 2000     | 515       | 481–529    | 481, 529, 515 | 1.00x  |
   | `tdigest::aggregation::serialized_in_batches/(1, 8)`      | DataSketches   
| 2000000  | 328       | 327–329    | 329, 327, 328 | 1.00x  |
   | `tdigest::aggregation::serialized_in_batches/(64, 8)`     | DataSketches   
| 9000     | 110       | 109–112    | 110, 109, 112 | 1.00x  |
   | `tdigest::aggregation::serialized_in_batches/(512, 8)`    | DataSketches   
| 800      | 81        | 81–86      | 86, 81, 81    | 1.00x  |
   | `tdigest::aggregation::serialized_in_batches/(64, 64)`    | DataSketches   
| 5000     | 234       | 233–234    | 234, 233, 234 | 1.00x  |
   | `tdigest::aggregation::serialized_in_batches/(512, 64)`   | DataSketches   
| 300      | 200       | 200–200    | 200, 200, 200 | 1.00x  |
   | `tdigest::aggregation::serialized_in_batches/(64, 4096)`  | DataSketches   
| 2000     | 333       | 321–339    | 339, 333, 321 | 1.00x  |
   | `tdigest::aggregation::end_to_end_borrowed/8`             | DataSketches   
| 8000     | 306       | 306–311    | 306, 311, 306 | 1.00x  |
   | `tdigest::aggregation::end_to_end_borrowed/64`            | DataSketches   
| 3000     | 362       | 356–364    | 364, 362, 356 | 1.00x  |
   | `tdigest::aggregation::end_to_end_owned/8`                | DataSketches   
| 8000     | 127       | 126–128    | 128, 127, 126 | 1.00x  |
   | `tdigest::aggregation::end_to_end_owned/64`               | DataSketches   
| 3000     | 322       | 321–330    | 322, 321, 330 | 1.00x  |
   | `tdigest::compress::initial_buffer`                       | DataSketches   
| 20000    | 337       | 336–338    | 337, 338, 336 | 1.00x  |
   | `tdigest::compress::unmerged_tail`                        | DataSketches   
| 10000    | 293       | 292–293    | 293, 292, 293 | 1.00x  |
   | `tdigest::compress::freeze_initial_buffer`                | DataSketches   
| 20000    | 337       | 337–337    | 337, 337, 337 | 1.00x  |
   | `tdigest::merge::merge`                                   | DataSketches   
| 150000   | 309       | 307–309    | 309, 307, 309 | 1.00x  |
   | `tdigest::merge::unmerged/8`                              | DataSketches   
| 20000    | 343       | 341–344    | 341, 344, 343 | 1.00x  |
   | `tdigest::merge::unmerged/1640`                           | DataSketches   
| 8000     | 308       | 308–308    | 308, 308, 308 | 1.00x  |
   | `tdigest::merge::small_partials`                          | DataSketches   
| 10000    | 228       | 228–229    | 229, 228, 228 | 1.00x  |
   | `tdigest::merge::partials`                                | DataSketches   
| 7000     | 320       | 319–321    | 319, 320, 321 | 1.00x  |
   | `tdigest::merge::partials_from_iter`                      | DataSketches   
| 20000    | 411       | 407–417    | 407, 411, 417 | 1.00x  |
   | `tdigest::merge::partials_from_iter_cloned`               | DataSketches   
| 20000    | 432       | 428–432    | 432, 432, 428 | 1.00x  |
   | `tdigest::merge::partials_from_iter_finalize/0`           | DataSketches   
| 10000    | 205       | 204–206    | 206, 204, 205 | 1.00x  |
   | `tdigest::merge::partials_from_iter_finalize/64`          | DataSketches   
| 10000    | 225       | 225–225    | 225, 225, 225 | 1.00x  |
   | `tdigest::merge::partials_from_iter_finalize/4096`        | DataSketches   
| 3000     | 334       | 333–336    | 333, 334, 336 | 1.00x  |
   | `tdigest::merge::uncompressed_partials_from_iter`         | DataSketches   
| 6000     | 311       | 309–311    | 311, 309, 311 | 1.00x  |
   | `tdigest::merge::serialized_partials/8`                   | DataSketches   
| 10000    | 266       | 265–268    | 268, 266, 265 | 1.00x  |
   | `tdigest::merge::serialized_partials/64`                  | DataSketches   
| 6000     | 336       | 333–339    | 333, 339, 336 | 1.00x  |
   | `tdigest::merge::serialized_overlapping_partials`         | DataSketches   
| 5000     | 320       | 318–322    | 322, 320, 318 | 1.00x  |
   | `tdigest::merge::serialized_partials_from_iter/false`     | DataSketches   
| 10000    | 287       | 283–287    | 287, 287, 283 | 1.00x  |
   | `tdigest::merge::serialized_partials_from_iter/true`      | DataSketches   
| 6000     | 316       | 315–322    | 315, 322, 316 | 1.00x  |
   | `tdigest::merge::serialized_partials_in_batches/false`    | DataSketches   
| 9000     | 316       | 315–317    | 315, 316, 317 | 1.00x  |
   | `tdigest::merge::serialized_partials_in_batches/true`     | DataSketches   
| 7000     | 327       | 324–330    | 324, 330, 327 | 1.00x  |
   | `tdigest::query::rank`                                    | DataSketches   
| 10000000 | 248       | 247–248    | 248, 248, 247 | 1.00x  |
   | `tdigest::query::rank_mixed`                              | DataSketches   
| 40000    | 278       | 276–279    | 278, 276, 279 | 1.00x  |
   | `tdigest::query::rank_small/0.0`                          | DataSketches   
| 80000000 | 333       | 328–339    | 339, 333, 328 | 1.00x  |
   | `tdigest::query::rank_small/2.5`                          | DataSketches   
| 80000000 | 474       | 473–504    | 473, 474, 504 | 1.00x  |
   | `tdigest::query::rank_small/5.0`                          | DataSketches   
| 50000000 | 321       | 314–324    | 314, 324, 321 | 1.00x  |
   | `tdigest::query::rank_mut`                                | DataSketches   
| 9000000  | 232       | 231–236    | 236, 232, 231 | 1.00x  |
   | `tdigest::query::rank_repeated_means/0.0`                 | DataSketches   
| 20000000 | 358       | 358–359    | 358, 359, 358 | 1.00x  |
   | `tdigest::query::rank_repeated_means/3.0`                 | DataSketches   
| 10000000 | 243       | 243–245    | 243, 243, 245 | 1.00x  |
   | `tdigest::query::rank_repeated_means/3.5`                 | DataSketches   
| 10000000 | 221       | 220–221    | 221, 221, 220 | 1.00x  |
   | `tdigest::query::rank_repeated_means/7.0`                 | DataSketches   
| 7000000  | 309       | 309–309    | 309, 309, 309 | 1.00x  |
   | `tdigest::query::quantile`                                | DataSketches   
| 4000000  | 301       | 298–302    | 301, 302, 298 | 1.00x  |
   | `tdigest::query::cdf_100`                                 | DataSketches   
| 600000   | 258       | 256–259    | 256, 258, 259 | 1.00x  |
   | `tdigest::query::pmf/1`                                   | DataSketches   
| 5000000  | 237       | 236–237    | 237, 236, 237 | 1.00x  |
   | `tdigest::query::pmf/6`                                   | DataSketches   
| 2000000  | 270       | 270–272    | 270, 272, 270 | 1.00x  |
   | `tdigest::query::pmf/100`                                 | DataSketches   
| 600000   | 268       | 266–274    | 266, 274, 268 | 1.00x  |
   | `tdigest::query::pmf/512`                                 | DataSketches   
| 100000   | 209       | 205–210    | 210, 209, 205 | 1.00x  |
   | `tdigest::query::quantiles_sequential<true>/2`            | DataSketches   
| 2000000  | 300       | 298–302    | 302, 300, 298 | 1.00x  |
   | `tdigest::query::quantiles_sequential<true>/6`            | DataSketches   
| 700000   | 305       | 304–310    | 305, 304, 310 | 1.00x  |
   | `tdigest::query::quantiles_sequential<true>/100`          | DataSketches   
| 40000    | 293       | 293–293    | 293, 293, 293 | 1.00x  |
   | `tdigest::query::quantiles_sequential<false>/2`           | DataSketches   
| 2000000  | 304       | 303–304    | 303, 304, 304 | 1.00x  |
   | `tdigest::query::quantiles_sequential<false>/6`           | DataSketches   
| 700000   | 313       | 312–314    | 314, 313, 312 | 1.00x  |
   | `tdigest::query::quantiles_sequential<false>/100`         | DataSketches   
| 40000    | 295       | 294–295    | 295, 295, 294 | 1.00x  |
   | `tdigest::query::quantiles_batch<true>/2`                 | DataSketches   
| 2000000  | 203       | 202–203    | 202, 203, 203 | 1.00x  |
   | `tdigest::query::quantiles_batch<true>/6`                 | DataSketches   
| 700000   | 78        | 78–78      | 78, 78, 78    | 1.00x  |
   | `tdigest::query::quantiles_batch<true>/100`               | DataSketches   
| 40000    | 15        | 15–15      | 15, 15, 15    | 1.00x  |
   | `tdigest::query::quantiles_batch<false>/2`                | DataSketches   
| 2000000  | 249       | 248–250    | 248, 250, 249 | 1.00x  |
   | `tdigest::query::quantiles_batch<false>/6`                | DataSketches   
| 700000   | 98        | 98–100     | 98, 100, 98   | 1.00x  |
   | `tdigest::query::quantiles_batch<false>/100`              | DataSketches   
| 40000    | 36        | 36–36      | 36, 36, 36    | 1.00x  |
   | `tdigest::serde::small_lifecycle/1`                       | DataSketches   
| 7000000  | 310       | 310–315    | 315, 310, 310 | 1.00x  |
   | `tdigest::serde::small_lifecycle/2`                       | DataSketches   
| 6000000  | 337       | 337–339    | 339, 337, 337 | 1.00x  |
   | `tdigest::serde::small_lifecycle/8`                       | DataSketches   
| 2000000  | 169       | 168–169    | 168, 169, 169 | 1.00x  |
   | `tdigest::serde::small_lifecycle/32`                      | DataSketches   
| 2000000  | 764       | 762–773    | 762, 764, 773 | 1.00x  |
   | `tdigest::serde::small_lifecycle/64`                      | DataSketches   
| 500000   | 404       | 403–404    | 404, 404, 403 | 1.00x  |
   | `tdigest::serde::small_lifecycle/128`                     | DataSketches   
| 200000   | 293       | 292–295    | 292, 295, 293 | 1.00x  |
   | `tdigest::serde::partial_lifecycle_by_k/10`               | DataSketches   
| 400000   | 367       | 364–367    | 364, 367, 367 | 1.00x  |
   | `tdigest::serde::partial_lifecycle_by_k/200`              | DataSketches   
| 500000   | 409       | 409–409    | 409, 409, 409 | 1.00x  |
   | `tdigest::serde::serialize_small_partial_groups`          | DataSketches   
| 10000    | 280       | 275–282    | 275, 280, 282 | 1.00x  |
   | `tdigest::serde::deserialize_small_partial_groups`        | DataSketches   
| 10000    | 228       | 225–245    | 245, 225, 228 | 1.00x  |
   | `tdigest::serde::serialize_partial_groups`                | DataSketches   
| 4000     | 318       | 318–320    | 318, 320, 318 | 1.00x  |
   | `tdigest::serde::deserialize_partial_groups`              | DataSketches   
| 4000     | 332       | 332–332    | 332, 332, 332 | 1.00x  |
   | `tdigest::update::update/1000`                            | DataSketches   
| 20000    | 274       | 273–275    | 274, 273, 275 | 1.00x  |
   | `tdigest::update::update/100000`                          | DataSketches   
| 100      | 272       | 269–279    | 279, 272, 269 | 1.00x  |
   | `tdigest::update::small_partial_groups_update`            | DataSketches   
| 20000    | 340       | 339–342    | 340, 339, 342 | 1.00x  |
   | `tdigest::update::small_partial_groups_update_two_states` | DataSketches   
| 20000    | 683       | 666–686    | 666, 686, 683 | 1.00x  |
   | `tdigest::update::partial_groups_update`                  | DataSketches   
| 2000     | 292       | 292–306    | 306, 292, 292 | 1.00x  |
   | `tdigest::update::partial_groups_update_two_states`       | DataSketches   
| 2000     | 412       | 410–415    | 412, 415, 410 | 1.00x  |
   
   </details>
   
   <details>
   <summary>theta: 2 scenarios, 2 implementation rows</summary>
   
   | Scenario                  | Implementation | Rounds | Median ms | Min–max 
ms | Runs (ms)     | vs ref |
   | ------------------------- | -------------- | ------ | --------- | 
---------- | ------------- | ------ |
   | `theta::update::u64`      | DataSketches   | 4000   | 286       | 279–299  
  | 286, 299, 279 | 1.00x  |
   | `theta::update::bytes_32` | DataSketches   | 3000   | 324       | 324–328  
  | 324, 324, 328 | 1.00x  |
   
   </details>
   
   <details>
   <summary>tuple: 2 scenarios, 2 implementation rows</summary>
   
   | Scenario                  | Implementation | Rounds | Median ms | Min–max 
ms | Runs (ms)     | vs ref |
   | ------------------------- | -------------- | ------ | --------- | 
---------- | ------------- | ------ |
   | `tuple::update::u64`      | DataSketches   | 4000   | 286       | 262–287  
  | 262, 287, 286 | 1.00x  |
   | `tuple::update::bytes_32` | DataSketches   | 3000   | 342       | 338–346  
  | 346, 338, 342 | 1.00x  |
   
   </details>
   
   <details>
   <summary>xor: 54 scenarios, 126 implementation rows</summary>
   
   | Scenario                                 | Implementation | Rounds | 
Median ms | Min–max ms | Runs (ms)      | vs ref |
   | ---------------------------------------- | -------------- | ------ | 
--------- | ---------- | -------------- | ------ |
   | `xor::build::8/1000`                     | distinct       | 60000  | 306   
    | 305–308    | 306, 305, 308  | 1.00x  |
   | `xor::build::8/1000`                     | deduplicate    | 60000  | 579   
    | 578–588    | 579, 588, 578  | 1.89x  |
   | `xor::build::8/1000`                     | xorf           | 60000  | 471   
    | 466–472    | 472, 471, 466  | 1.54x  |
   | `xor::build::8/16384`                    | distinct       | 2000   | 362   
    | 359–366    | 359, 366, 362  | 1.00x  |
   | `xor::build::8/16384`                    | deduplicate    | 2000   | 570   
    | 566–584    | 584, 566, 570  | 1.58x  |
   | `xor::build::8/16384`                    | xorf           | 2000   | 286   
    | 282–300    | 300, 286, 282  | 0.79x  |
   | `xor::build::8/49999`                    | distinct       | 600    | 287   
    | 277–296    | 277, 287, 296  | 1.00x  |
   | `xor::build::8/49999`                    | deduplicate    | 600    | 556   
    | 552–563    | 552, 563, 556  | 1.94x  |
   | `xor::build::8/49999`                    | xorf           | 600    | 370   
    | 350–373    | 373, 350, 370  | 1.29x  |
   | `xor::build::8/50000`                    | distinct       | 600    | 292   
    | 281–302    | 292, 281, 302  | 1.00x  |
   | `xor::build::8/50000`                    | deduplicate    | 600    | 572   
    | 567–580    | 567, 580, 572  | 1.96x  |
   | `xor::build::8/50000`                    | xorf           | 600    | 350   
    | 349–380    | 350, 349, 380  | 1.20x  |
   | `xor::build::8/50001`                    | distinct       | 600    | 305   
    | 301–315    | 305, 315, 301  | 1.00x  |
   | `xor::build::8/50001`                    | deduplicate    | 600    | 586   
    | 583–852    | 586, 852, 583  | 1.92x  |
   | `xor::build::8/50001`                    | xorf           | 600    | 398   
    | 386–1078   | 386, 1078, 398 | 1.30x  |
   | `xor::build::8/100000`                   | distinct       | 200    | 272   
    | 272–279    | 272, 279, 272  | 1.00x  |
   | `xor::build::8/100000`                   | deduplicate    | 200    | 460   
    | 448–463    | 460, 463, 448  | 1.69x  |
   | `xor::build::8/100000`                   | xorf           | 200    | 300   
    | 293–310    | 293, 300, 310  | 1.10x  |
   | `xor::build::16/1000`                    | distinct       | 60000  | 304   
    | 301–305    | 305, 304, 301  | 1.00x  |
   | `xor::build::16/1000`                    | deduplicate    | 60000  | 577   
    | 570–579    | 577, 570, 579  | 1.90x  |
   | `xor::build::16/1000`                    | xorf           | 60000  | 468   
    | 467–469    | 467, 468, 469  | 1.54x  |
   | `xor::build::16/16384`                   | distinct       | 2000   | 359   
    | 357–366    | 359, 357, 366  | 1.00x  |
   | `xor::build::16/16384`                   | deduplicate    | 2000   | 559   
    | 558–560    | 558, 559, 560  | 1.56x  |
   | `xor::build::16/16384`                   | xorf           | 2000   | 283   
    | 282–283    | 283, 282, 283  | 0.79x  |
   | `xor::build::16/49999`                   | distinct       | 600    | 298   
    | 291–315    | 298, 291, 315  | 1.00x  |
   | `xor::build::16/49999`                   | deduplicate    | 600    | 575   
    | 572–580    | 572, 580, 575  | 1.93x  |
   | `xor::build::16/49999`                   | xorf           | 600    | 344   
    | 343–363    | 363, 343, 344  | 1.15x  |
   | `xor::build::16/50000`                   | distinct       | 600    | 296   
    | 293–309    | 293, 296, 309  | 1.00x  |
   | `xor::build::16/50000`                   | deduplicate    | 600    | 563   
    | 554–592    | 563, 592, 554  | 1.90x  |
   | `xor::build::16/50000`                   | xorf           | 600    | 359   
    | 342–367    | 359, 367, 342  | 1.21x  |
   | `xor::build::16/50001`                   | distinct       | 600    | 294   
    | 293–316    | 294, 293, 316  | 1.00x  |
   | `xor::build::16/50001`                   | deduplicate    | 600    | 552   
    | 544–586    | 544, 552, 586  | 1.87x  |
   | `xor::build::16/50001`                   | xorf           | 600    | 330   
    | 327–345    | 327, 330, 345  | 1.12x  |
   | `xor::build::16/100000`                  | distinct       | 200    | 284   
    | 283–301    | 284, 283, 301  | 1.00x  |
   | `xor::build::16/100000`                  | deduplicate    | 200    | 459   
    | 458–496    | 458, 459, 496  | 1.62x  |
   | `xor::build::16/100000`                  | xorf           | 200    | 308   
    | 295–320    | 308, 320, 295  | 1.09x  |
   | `xor::build::32/1000`                    | distinct       | 60000  | 314   
    | 312–315    | 312, 314, 315  | 1.00x  |
   | `xor::build::32/1000`                    | deduplicate    | 60000  | 583   
    | 583–586    | 583, 583, 586  | 1.86x  |
   | `xor::build::32/1000`                    | xorf           | 60000  | 469   
    | 467–469    | 467, 469, 469  | 1.49x  |
   | `xor::build::32/16384`                   | distinct       | 2000   | 370   
    | 363–370    | 370, 363, 370  | 1.00x  |
   | `xor::build::32/16384`                   | deduplicate    | 2000   | 570   
    | 569–578    | 570, 569, 578  | 1.54x  |
   | `xor::build::32/16384`                   | xorf           | 2000   | 286   
    | 283–288    | 286, 283, 288  | 0.77x  |
   | `xor::build::32/49999`                   | distinct       | 600    | 300   
    | 292–311    | 311, 300, 292  | 1.00x  |
   | `xor::build::32/49999`                   | deduplicate    | 600    | 578   
    | 569–580    | 569, 580, 578  | 1.93x  |
   | `xor::build::32/49999`                   | xorf           | 600    | 346   
    | 332–373    | 346, 373, 332  | 1.15x  |
   | `xor::build::32/50000`                   | distinct       | 600    | 295   
    | 288–299    | 295, 288, 299  | 1.00x  |
   | `xor::build::32/50000`                   | deduplicate    | 600    | 555   
    | 549–581    | 555, 581, 549  | 1.88x  |
   | `xor::build::32/50000`                   | xorf           | 600    | 340   
    | 334–347    | 347, 334, 340  | 1.15x  |
   | `xor::build::32/50001`                   | distinct       | 600    | 304   
    | 291–308    | 308, 291, 304  | 1.00x  |
   | `xor::build::32/50001`                   | deduplicate    | 600    | 551   
    | 542–594    | 542, 594, 551  | 1.81x  |
   | `xor::build::32/50001`                   | xorf           | 600    | 348   
    | 342–366    | 342, 366, 348  | 1.15x  |
   | `xor::build::32/100000`                  | distinct       | 200    | 272   
    | 271–288    | 272, 288, 271  | 1.00x  |
   | `xor::build::32/100000`                  | deduplicate    | 200    | 462   
    | 450–468    | 462, 468, 450  | 1.70x  |
   | `xor::build::32/100000`                  | xorf           | 200    | 304   
    | 298–322    | 304, 322, 298  | 1.12x  |
   | `xor::matched_build::8/(1000, 0)`        | DataSketches   | 60000  | 302   
    | 301–303    | 303, 302, 301  | 1.00x  |
   | `xor::matched_build::8/(1000, 0)`        | xorf           | 60000  | 465   
    | 464–466    | 465, 466, 464  | 1.54x  |
   | `xor::matched_build::8/(16384, 0)`       | DataSketches   | 3000   | 307   
    | 305–309    | 309, 305, 307  | 1.00x  |
   | `xor::matched_build::8/(16384, 0)`       | xorf           | 3000   | 414   
    | 413–418    | 413, 414, 418  | 1.35x  |
   | `xor::matched_build::8/(16384, 917504)`  | DataSketches   | 2000   | 360   
    | 355–361    | 361, 360, 355  | 1.00x  |
   | `xor::matched_build::8/(16384, 917504)`  | xorf           | 2000   | 495   
    | 489–503    | 503, 489, 495  | 1.37x  |
   | `xor::matched_build::8/(49999, 0)`       | DataSketches   | 600    | 280   
    | 276–286    | 280, 286, 276  | 1.00x  |
   | `xor::matched_build::8/(49999, 0)`       | xorf           | 600    | 362   
    | 351–372    | 372, 351, 362  | 1.29x  |
   | `xor::matched_build::8/(50000, 0)`       | DataSketches   | 600    | 288   
    | 271–297    | 271, 297, 288  | 1.00x  |
   | `xor::matched_build::8/(50000, 0)`       | xorf           | 600    | 370   
    | 337–382    | 337, 370, 382  | 1.29x  |
   | `xor::matched_build::8/(50001, 0)`       | DataSketches   | 600    | 304   
    | 293–305    | 304, 305, 293  | 1.00x  |
   | `xor::matched_build::8/(50001, 0)`       | xorf           | 600    | 369   
    | 365–375    | 369, 375, 365  | 1.21x  |
   | `xor::matched_build::8/(100000, 0)`      | DataSketches   | 200    | 275   
    | 274–278    | 278, 274, 275  | 1.00x  |
   | `xor::matched_build::8/(100000, 0)`      | xorf           | 200    | 302   
    | 298–306    | 302, 298, 306  | 1.10x  |
   | `xor::matched_build::8/(8000000, 0)`     | DataSketches   | 1      | 317   
    | 315–349    | 349, 315, 317  | 1.00x  |
   | `xor::matched_build::8/(8000000, 0)`     | xorf           | 1      | 366   
    | 329–503    | 503, 366, 329  | 1.16x  |
   | `xor::matched_build::16/(1000, 0)`       | DataSketches   | 60000  | 304   
    | 303–306    | 306, 304, 303  | 1.00x  |
   | `xor::matched_build::16/(1000, 0)`       | xorf           | 60000  | 471   
    | 468–472    | 471, 472, 468  | 1.55x  |
   | `xor::matched_build::16/(16384, 0)`      | DataSketches   | 3000   | 314   
    | 309–315    | 314, 315, 309  | 1.00x  |
   | `xor::matched_build::16/(16384, 0)`      | xorf           | 3000   | 425   
    | 416–447    | 416, 425, 447  | 1.35x  |
   | `xor::matched_build::16/(16384, 917504)` | DataSketches   | 2000   | 362   
    | 357–364    | 362, 364, 357  | 1.00x  |
   | `xor::matched_build::16/(16384, 917504)` | xorf           | 2000   | 519   
    | 499–522    | 522, 499, 519  | 1.43x  |
   | `xor::matched_build::16/(49999, 0)`      | DataSketches   | 600    | 280   
    | 273–293    | 293, 280, 273  | 1.00x  |
   | `xor::matched_build::16/(49999, 0)`      | xorf           | 600    | 333   
    | 326–346    | 333, 326, 346  | 1.19x  |
   | `xor::matched_build::16/(50000, 0)`      | DataSketches   | 600    | 283   
    | 282–286    | 286, 283, 282  | 1.00x  |
   | `xor::matched_build::16/(50000, 0)`      | xorf           | 600    | 337   
    | 319–341    | 341, 319, 337  | 1.19x  |
   | `xor::matched_build::16/(50001, 0)`      | DataSketches   | 600    | 309   
    | 298–310    | 310, 309, 298  | 1.00x  |
   | `xor::matched_build::16/(50001, 0)`      | xorf           | 600    | 359   
    | 354–364    | 359, 364, 354  | 1.16x  |
   | `xor::matched_build::16/(100000, 0)`     | DataSketches   | 200    | 282   
    | 279–285    | 282, 285, 279  | 1.00x  |
   | `xor::matched_build::16/(100000, 0)`     | xorf           | 200    | 314   
    | 296–323    | 323, 314, 296  | 1.12x  |
   | `xor::matched_build::16/(8000000, 0)`    | DataSketches   | 1      | 331   
    | 312–336    | 336, 331, 312  | 1.00x  |
   | `xor::matched_build::16/(8000000, 0)`    | xorf           | 1      | 364   
    | 345–404    | 404, 364, 345  | 1.10x  |
   | `xor::matched_build::32/(1000, 0)`       | DataSketches   | 60000  | 315   
    | 309–315    | 315, 309, 315  | 1.00x  |
   | `xor::matched_build::32/(1000, 0)`       | xorf           | 60000  | 469   
    | 468–472    | 468, 469, 472  | 1.49x  |
   | `xor::matched_build::32/(16384, 0)`      | DataSketches   | 3000   | 319   
    | 314–324    | 324, 319, 314  | 1.00x  |
   | `xor::matched_build::32/(16384, 0)`      | xorf           | 3000   | 420   
    | 417–428    | 417, 420, 428  | 1.32x  |
   | `xor::matched_build::32/(16384, 917504)` | DataSketches   | 2000   | 375   
    | 364–375    | 364, 375, 375  | 1.00x  |
   | `xor::matched_build::32/(16384, 917504)` | xorf           | 2000   | 507   
    | 504–548    | 548, 504, 507  | 1.35x  |
   | `xor::matched_build::32/(49999, 0)`      | DataSketches   | 600    | 296   
    | 286–302    | 302, 286, 296  | 1.00x  |
   | `xor::matched_build::32/(49999, 0)`      | xorf           | 600    | 336   
    | 329–352    | 336, 329, 352  | 1.14x  |
   | `xor::matched_build::32/(50000, 0)`      | DataSketches   | 600    | 326   
    | 293–339    | 326, 339, 293  | 1.00x  |
   | `xor::matched_build::32/(50000, 0)`      | xorf           | 600    | 367   
    | 354–400    | 400, 367, 354  | 1.13x  |
   | `xor::matched_build::32/(50001, 0)`      | DataSketches   | 600    | 301   
    | 297–310    | 301, 297, 310  | 1.00x  |
   | `xor::matched_build::32/(50001, 0)`      | xorf           | 600    | 349   
    | 344–366    | 349, 344, 366  | 1.16x  |
   | `xor::matched_build::32/(100000, 0)`     | DataSketches   | 200    | 283   
    | 276–285    | 283, 285, 276  | 1.00x  |
   | `xor::matched_build::32/(100000, 0)`     | xorf           | 200    | 320   
    | 300–324    | 320, 300, 324  | 1.13x  |
   | `xor::matched_build::32/(8000000, 0)`    | DataSketches   | 1      | 354   
    | 341–367    | 354, 341, 367  | 1.00x  |
   | `xor::matched_build::32/(8000000, 0)`    | xorf           | 1      | 395   
    | 349–517    | 517, 395, 349  | 1.12x  |
   | `xor::query::8_present/16384`            | DataSketches   | 10000  | 316   
    | 314–317    | 314, 316, 317  | 1.00x  |
   | `xor::query::8_present/16384`            | xorf           | 10000  | 283   
    | 283–294    | 283, 283, 294  | 0.90x  |
   | `xor::query::8_present/50000`            | DataSketches   | 3000   | 292   
    | 289–300    | 289, 300, 292  | 1.00x  |
   | `xor::query::8_present/50000`            | xorf           | 3000   | 255   
    | 253–256    | 256, 255, 253  | 0.87x  |
   | `xor::query::8_absent/16384`             | DataSketches   | 10000  | 317   
    | 313–318    | 317, 318, 313  | 1.00x  |
   | `xor::query::8_absent/16384`             | xorf           | 10000  | 281   
    | 281–282    | 282, 281, 281  | 0.89x  |
   | `xor::query::8_absent/50000`             | DataSketches   | 3000   | 289   
    | 288–289    | 289, 288, 289  | 1.00x  |
   | `xor::query::8_absent/50000`             | xorf           | 3000   | 255   
    | 251–255    | 255, 255, 251  | 0.88x  |
   | `xor::query::16_present/16384`           | DataSketches   | 10000  | 350   
    | 349–357    | 350, 349, 357  | 1.00x  |
   | `xor::query::16_present/16384`           | xorf           | 10000  | 282   
    | 282–284    | 282, 284, 282  | 0.81x  |
   | `xor::query::16_present/50000`           | DataSketches   | 3000   | 327   
    | 325–329    | 327, 329, 325  | 1.00x  |
   | `xor::query::16_present/50000`           | xorf           | 3000   | 268   
    | 268–268    | 268, 268, 268  | 0.82x  |
   | `xor::query::16_absent/16384`            | DataSketches   | 10000  | 346   
    | 343–355    | 355, 346, 343  | 1.00x  |
   | `xor::query::16_absent/16384`            | xorf           | 10000  | 283   
    | 278–284    | 284, 283, 278  | 0.82x  |
   | `xor::query::16_absent/50000`            | DataSketches   | 3000   | 327   
    | 322–328    | 322, 328, 327  | 1.00x  |
   | `xor::query::16_absent/50000`            | xorf           | 3000   | 268   
    | 263–276    | 276, 263, 268  | 0.82x  |
   | `xor::query::32_present/16384`           | DataSketches   | 10000  | 333   
    | 330–338    | 333, 338, 330  | 1.00x  |
   | `xor::query::32_present/16384`           | xorf           | 10000  | 278   
    | 278–279    | 278, 278, 279  | 0.84x  |
   | `xor::query::32_present/50000`           | DataSketches   | 3000   | 342   
    | 340–343    | 340, 342, 343  | 1.00x  |
   | `xor::query::32_present/50000`           | xorf           | 3000   | 303   
    | 300–304    | 303, 300, 304  | 0.89x  |
   | `xor::query::32_absent/16384`            | DataSketches   | 10000  | 331   
    | 331–335    | 335, 331, 331  | 1.00x  |
   | `xor::query::32_absent/16384`            | xorf           | 10000  | 279   
    | 278–281    | 278, 279, 281  | 0.84x  |
   | `xor::query::32_absent/50000`            | DataSketches   | 3000   | 343   
    | 342–344    | 343, 342, 344  | 1.00x  |
   | `xor::query::32_absent/50000`            | xorf           | 3000   | 299   
    | 299–304    | 299, 299, 304  | 0.87x  |
   
   </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