RustCrypto / hashes

Collection of cryptographic hash functions written in pure Rust
1.76k stars 239 forks source link

md4: Optimize compress to improve hash performance by about 12.5% #519

Closed CausingBrick closed 8 months ago

CausingBrick commented 8 months ago

Test

running 2 tests
test md4_main ... ok
test md4_rand ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s

Bench

Without this patch

running 4 tests
test md4_10    ... bench:           9 ns/iter (+/- 0) = 1111 MB/s
test md4_100   ... bench:          85 ns/iter (+/- 0) = 1176 MB/s
test md4_1000  ... bench:         855 ns/iter (+/- 3) = 1169 MB/s
test md4_10000 ... bench:       8,564 ns/iter (+/- 15) = 1167 MB/s

test result: ok. 0 passed; 0 failed; 0 ignored; 4 measured; 0 filtered out; finished in 10.68s

With this patch

running 4 tests
test md4_10    ... bench:           8 ns/iter (+/- 0) = 1250 MB/s
test md4_100   ... bench:          83 ns/iter (+/- 0) = 1204 MB/s
test md4_1000  ... bench:         833 ns/iter (+/- 8) = 1200 MB/s
test md4_10000 ... bench:       8,344 ns/iter (+/- 112) = 1198 MB/s

test result: ok. 0 passed; 0 failed; 0 ignored; 4 measured; 0 filtered out; finished in 8.10s
newpavlov commented 8 months ago

Thank you! On my PC performance improvement is much smaller (~2.5%), but still measurable.