Xuanwo opened a new pull request, #307: URL: https://github.com/apache/datasketches-rust/pull/307
Hybrid serialization already merges sorted table pairs with window pairs generated in ascending row/column order. Skip the redundant final sort of that merged sequence. Other flavors still sort their pairs, and serialized bytes remain unchanged. ### Benchmark Measured `a58f7df1809c59431fdbccf8b55973c3e1edfc79` against `675e3e123fda6da19657d345038252b16adc2ebb` on an isolated EC2 c7i.2xlarge (Xeon Platinum 8488C), Rust 1.99.1 release defaults, one process pinned to CPU 2, with warmup and seven alternating pairs. Each operation is a complete public serialization call on a prepared sketch, including output allocation and destruction. | Workload | Before | After | Paired speedup | | --- | ---: | ---: | ---: | | Hybrid, lg_k=10, 200 inputs | 1.374 µs | 1.320 µs | 1.04× | | Hybrid, lg_k=15, 8,000 inputs | 118.502 µs | 98.954 µs | 1.19× | | Hybrid, lg_k=15, 15,000 inputs | 192.084 µs | 163.448 µs | 1.18× | | Sparse, lg_k=10, 32 inputs | 0.298 µs | 0.316 µs | 0.95× | Hybrid serialization improves by about 1.04–1.19× in this matrix. The tiny Sparse control costs about 17 ns more (roughly 6%); no gain is claimed for unchanged Pinned/Sliding or update paths. Targeted checks preserve exact serialized fingerprints across flavors, custom seeds, unions, and wrappers. Latencies are sample medians; speedups are medians of paired ratios. -- 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]
