hashing/tests: benchmark the crc32c backends
Compares the google/crc32c and abseil backends of basic_crc32c across the call patterns redpanda actually uses: bulk contiguous buffers, the 12 incremental integer extends of model::internal_header_only_crc, fragmented iobufs, and a checksum fused with a copy (abseil's MemcpyCrc32c, which has no wrapper equivalent and is benchmarked raw). Both sides go through basic_crc32c, so each backend is measured exactly as production calls it. Each fixture cross-checks that the two backends agree before measuring. Sizes are paired around google/crc32c's block tiers, which it enters only at 3*336, 3*1360 and 3*5440 bytes. Whatever does not fill a tier falls to a smaller one and finally to a serial loop, so its throughput sawtooths by ~15% across a 64 byte change in length and a single size can rank the two implementations either way. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
N
Noah Watkins committed
b8ede68f80e520e38ddfb499c4b00a97e85330fb
Parent: 0831090