mrhooray / crc-rs

Rust implementation of CRC(16, 32, 64) with support of various standards
Apache License 2.0
187 stars 49 forks source link

implement slice16 and no-table implementations for width 64 #81

Closed KillingSpark closed 1 year ago

KillingSpark commented 1 year ago

Got around to implement slice16 and no-table flavours for Crc

Benches:

crc64/default           time:   [29.969 µs 30.022 µs 30.082 µs]
                        thrpt:  [519.41 MiB/s 520.45 MiB/s 521.37 MiB/s]

crc64/nolookup          time:   [111.28 µs 111.51 µs 111.72 µs]
                        thrpt:  [139.86 MiB/s 140.12 MiB/s 140.41 MiB/s]

crc64/bytewise          time:   [29.864 µs 29.934 µs 30.004 µs]
                        thrpt:  [520.77 MiB/s 521.98 MiB/s 523.21 MiB/s]

crc64/slice16           time:   [5.1544 µs 5.1681 µs 5.1839 µs]
                        thrpt:  [2.9435 GiB/s 2.9525 GiB/s 2.9603 GiB/s]
akhilles commented 1 year ago

Thanks!