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]
