crc32c icon indicating copy to clipboard operation
crc32c copied to clipboard

include benches for crc crate software implementation to compare against crc32c

Open rukai opened this issue 2 years ago • 2 comments

Update benchmarks to include comparisons against the more generic and purely software implementation from the crc crate.

I refactored the way benchmark_groups were named as they were previously creating redundant names like: crc32_update_megabytes/crc32_update_megabytes Now they are named like 1mb/crc32c This also sets us up to name the new benchmarks like 1mb/crc_crate

I also noticed that the definition of 1 megabyte was not consistent with the definition used for kilobyte. So I changed all megabyte benches to use 1024 * 1024 instead of 1000 * 1000.

All the original benches have functionally equivalent benches just under new names.

I removed:

[target.aarch64-unknown-linux-gnu]
linker = "aarch64-linux-gnu-gcc"

Because it was causing a warning in Cargo.toml due to being ignored and having no effect. I think this sort of config is supposed to go in .cargo/config.toml would you rather me move it there instead of delete it?

rukai avatar Sep 07 '23 03:09 rukai

Can you speak to the reason we will be benching against another crate? I'm skeptical of deeply embedding a separate crate into the benchmarks.

zowens avatar Sep 13 '23 15:09 zowens

The main draw of this crate is the higher performance other over crates. If this crate werent actually faster I would be better off just using the crc crate as that is more flexible. So as a user I want to be able to actually compare the two and go "yep crc32c faster"

I can understand your reasoning though, I would be happy to host the proposed changes in a separate repo and then link to it in the crc32c repo?

rukai avatar Sep 13 '23 22:09 rukai