linksplatform / Hashing

LinksPlatform's Platform.Hashing Template Library
The Unlicense
2 stars 2 forks source link

Add bindings for `ahash` #12

Open uselessgoddess opened 2 years ago

uselessgoddess commented 2 years ago

ahash is a non-crypto crazy fast hash algo without SSE and AVX instructions only for hash maps.

Konard commented 2 years ago

Can we make a benchmark? Does it provide good distribution of data?

uselessgoddess commented 2 years ago

Check out this paper

Konard commented 2 years ago

I don’t see compassion with crc32 in this paper.

uselessgoddess commented 2 years ago

Lol. Crc is insecure, 100% bias, collisions, distrib, BIC, machine-specific (x86 SSE4.2+PCLMUL) But I make simple tests At random data:

throughput-example/ahash
                        time:   [4.2010 ms 4.2792 ms 4.3583 ms]
                        thrpt:  [218.82 MiB/s 222.86 MiB/s 227.01 MiB/s]
throughput-example/crc32
                        time:   [6.9233 ms 7.0549 ms 7.1902 ms]
                        thrpt:  [132.64 MiB/s 135.18 MiB/s 137.75 MiB/s]
throughput-example/crc64
                        time:   [6.7178 ms 6.7916 ms 6.8669 ms]
                        thrpt:  [138.88 MiB/s 140.42 MiB/s 141.96 MiB/s]
throughput-example/crc82
                        time:   [6.6964 ms 6.7878 ms 6.8808 ms]
                        thrpt:  [138.60 MiB/s 140.50 MiB/s 142.42 MiB/s]

At static data:

throughput-example/ahash
                        time:   [71.363 µs 73.370 µs 75.365 µs]
                        thrpt:  [12.357 GiB/s 12.693 GiB/s 13.050 GiB/s]
throughput-example/crc32
                        time:   [2.0147 ms 2.0192 ms 2.0236 ms]
                        thrpt:  [471.27 MiB/s 472.31 MiB/s 473.35 MiB/s]
throughput-example/crc64
                        time:   [2.1869 ms 2.2210 ms 2.2593 ms]
                        thrpt:  [422.11 MiB/s 429.38 MiB/s 436.08 MiB/s]
throughput-example/crc82
                        time:   [2.3661 ms 2.3768 ms 2.3875 ms]
                        thrpt:  [399.44 MiB/s 401.24 MiB/s 403.06 MiB/s]
uselessgoddess commented 2 years ago

https://create.stephan-brumme.com/crc32/