Dalam dunia khusus fungsi hash, satu pesaing baru yang dipanggil rapidhash telah muncul sebagai kemungkinan penyelesaian terkini untuk pengehasan kunci kecil. Menurut pakar komuniti, rapidhash mewakili kemajuan penting dalam usaha berterusan untuk mengimbangi kelajuan, kualiti, dan keserasian platform dalam fungsi hash bukan kriptografi.
Keperluan Kelajuan vs. Kualiti
Fungsi hash berfungsi sebagai blok asas dalam pengkomputeran, digunakan dalam segala-galanya dari jadual hash dan kamus hingga checksum dan pengesahan data. Fungsi hash yang ideal mengagihkan inputnya secara seragam merentasi ruang output sambil memproses data secepat mungkin. Walau bagaimanapun, sejak sekian lama terdapat pertukaran asas antara pemprosesan, kependaman, dan kualiti.
Terdapat pertukaran asas antara pemprosesan dan kependaman untuk fungsi hash. Algoritma rapidhash jelas dioptimumkan untuk kependaman rendah dalam kes di mana kunci adalah kecil, seperti kamus rentetan dan yang serupa.
Apa yang menjadikan rapidhash sangat ketara adalah prestasi luar biasanya dengan kunci kecil - rentetan biasanya kurang daripada 100 bait - sambil mengekalkan ciri-ciri pengagihan berkualiti tinggi. Ini menjadikannya sangat berharga untuk pelaksanaan peta hash, di mana overhed memanggil fungsi hash itu sendiri menjadi penting apabila memproses banyak rentetan kecil.
Melangkaui XXH3: Kualiti Penting
Walaupun XXH3 telah menjadi pilihan popular selama bertahun-tahun, pakar komuniti menunjukkan bahawa ia gagal dalam kira-kira 15% ujian dalam SMHasher3, satu suite ujian komprehensif untuk menilai kualiti fungsi hash. Rapidhash, sebagai perbandingan, lulus semua ujian dalam kedua-dua SMHasher dan SMHasher3 sambil memberikan prestasi yang lebih baik.
Kualiti fungsi hash merujuk kepada sejauh mana ia menghampiri oracle rawak - pada asasnya, bagaimana ia mengagihkan secara seragam mana-mana set input merentasi ruang outputnya. Walaupun fungsi hash kriptografi seperti SHA-256 cemerlang dalam hal ini, ia biasanya jauh lebih perlahan. Fungsi bukan kriptografi seperti rapidhash bertujuan untuk mencari keseimbangan optimum antara kelajuan dan kualiti.
Penanda aras prestasi menunjukkan rapidhash mencapai hasil yang mengagumkan, dengan kependaman purata semasa mengehas kunci kecil (4-16 bait) berkisar dari 1.38ns pada Apple M3 Pro hingga 2.31ns pada pemproses AMD Turin. Untuk input yang lebih besar, rapidhash mencapai pemprosesan sehingga 71GB/s pada cip Apple M4, mengatasi XXH3 dengan ketara yang mencapai 49GB/s pada perkakasan yang sama.
Perbandingan Prestasi: Kependaman Purata (Pengehasan kunci 4-16 bait)
Fungsi Hash | M1 Pro | M3 Pro | Neoverse V2 | AMD Turin |
---|---|---|---|---|
rapidhash | 1.79ns | 1.38ns | 2.07ns | 2.31ns |
xxh3 | 1.92ns | 1.50ns | 2.15ns | 2.35ns |
Daya Pemprosesan Puncak (Pengehasan fail 16KB-2MB)
Fungsi Hash | M1 Pro | M3 Pro | M3 Ultra | M4 | Neoverse V2 |
---|---|---|---|---|---|
rapidhash | 47GB/s | 57GB/s | 61GB/s | 71GB/s | 37GB/s |
xxh3 | 37GB/s | 43GB/s | 47GB/s | 49GB/s | 34GB/s |
Kes Penggunaan Khusus
Perbincangan mendedahkan bahawa pemilihan fungsi hash harus disesuaikan dengan kes penggunaan tertentu. Untuk carian kamus dan jadual hash dengan kunci kecil, rapidhash nampaknya menjadi peneraju semasa. Walau bagaimanapun, untuk aplikasi khusus di mana sifat kunci diketahui dengan baik terlebih dahulu, fungsi hash yang direka khusus mungkin masih menawarkan prestasi yang lebih baik.
Titik persilangan antara algoritma yang dioptimumkan untuk kependaman seperti rapidhash dan alternatif yang dioptimumkan untuk pemprosesan berlaku sekitar 400-500 bait pada perkakasan pelayan moden. Untuk kunci yang lebih besar daripada ambang ini, penyelesaian lain mungkin lebih sesuai.
Perlu diperhatikan bahawa bidang fungsi hash bukan kriptografi telah berkembang pesat dalam beberapa tahun kebelakangan ini. Fungsi yang dianggap terkini sedekad yang lalu kini dianggap rosak mengikut standard hari ini. Kemajuan pesat ini telah meningkatkan standard secara ketara untuk apa yang membentuk fungsi hash tujuan umum yang boleh diterima.
Bagi pembangun yang bekerja pada aplikasi kritikal prestasi yang melibatkan jadual hash atau kamus, rapidhash mewakili pilihan menarik yang mengimbangi saiz kod, kelajuan, dan kualiti. Keupayaannya untuk memproses kunci kecil dengan kependaman minimum sambil mengekalkan ciri-ciri pengagihan berkualiti tinggi menjadikannya sangat berharga untuk pembangunan perisian moden.
Rujukan: rapidhash - Very fast, high quality, platform-independent