mirror of
https://github.com/RGBCube/serenity
synced 2026-01-12 23:01:01 +00:00
This implements Intel's slicing-by-8 algorithm for CRC checksums (only
little endian CPUs for now, as I don't have a way to test big endian).
The original paper for this algorithm seems to have disappeared, but
Intel's source code is still available as a reference:
https://sourceforge.net/projects/slicing-by-8/
As well as other implementations for reference:
https://docs.rs/slice-by-8/latest/src/slice_by_8/algorithm.rs.html
Using the "enwik8" file as a test (100MB uncompressed, commonly used in
benchmarks: https://www.mattmahoney.net/dc/enwik8.zip), decompression
time decreases from:
4.89s to 3.52s on Serenity (cold)
1.72s to 1.32s on Serenity (warm)
1.06s to 0.92s on Linux
|
||
|---|---|---|
| .. | ||
| ASN1 | ||
| Authentication | ||
| BigFraction | ||
| BigInt | ||
| Checksum | ||
| Cipher | ||
| Curves | ||
| Hash | ||
| NumberTheory | ||
| PK | ||
| CMakeLists.txt | ||
| Forward.h | ||
| Verification.h | ||