Rapidhash Muncul sebagai Fungsi Hash Mutakhir untuk Kunci Kecil, Mengalahkan XXH3

BigGo Editorial Team
Rapidhash Muncul sebagai Fungsi Hash Mutakhir untuk Kunci Kecil, Mengalahkan XXH3

Dalam dunia khusus fungsi hash, sebuah pesaing baru bernama rapidhash telah muncul sebagai solusi mutakhir potensial untuk hashing kunci kecil. Menurut para ahli komunitas, rapidhash mewakili kemajuan signifikan dalam upaya berkelanjutan untuk menyeimbangkan kecepatan, kualitas, dan kompatibilitas platform dalam fungsi hash non-kriptografis.

Kebutuhan akan Kecepatan vs. Kualitas

Fungsi hash berfungsi sebagai blok bangunan fundamental dalam komputasi, digunakan dalam segala hal mulai dari tabel hash dan kamus hingga checksum dan verifikasi data. Fungsi hash yang ideal mendistribusikan inputnya secara merata di seluruh ruang output sambil memproses data secepat mungkin. Namun, selama ini ada pertukaran mendasar antara throughput, latensi, dan kualitas.

Ada pertukaran mendasar antara throughput dan latensi untuk fungsi hash. Algoritma rapidhash jelas dioptimalkan untuk latensi rendah dalam kasus di mana kunci berukuran kecil, seperti kamus string dan sejenisnya.

Yang membuat rapidhash sangat menonjol adalah kinerjanya yang luar biasa dengan kunci kecil - string yang biasanya di bawah 100 byte - sambil mempertahankan karakteristik distribusi berkualitas tinggi. Ini menjadikannya sangat berharga untuk implementasi peta hash, di mana overhead dari pemanggilan fungsi hash itu sendiri menjadi signifikan ketika memproses banyak string kecil.

Melampaui XXH3: Kualitas itu Penting

Sementara XXH3 telah menjadi pilihan populer selama bertahun-tahun, para ahli komunitas menunjukkan bahwa fungsi ini gagal sekitar 15% dari tes dalam SMHasher3, sebuah rangkaian tes komprehensif untuk mengevaluasi kualitas fungsi hash. Rapidhash, sebagai perbandingan, lulus semua tes baik di SMHasher maupun SMHasher3 sambil memberikan kinerja yang lebih unggul.

Kualitas fungsi hash mengacu pada seberapa dekat fungsi tersebut mendekati oracle acak - pada dasarnya, seberapa merata fungsi tersebut mendistribusikan setiap set input di seluruh ruang outputnya. Meskipun fungsi hash kriptografis seperti SHA-256 unggul dalam hal ini, mereka biasanya jauh lebih lambat. Fungsi non-kriptografis seperti rapidhash bertujuan untuk menemukan keseimbangan optimal antara kecepatan dan kualitas.

Tolok ukur kinerja menunjukkan rapidhash mencapai hasil yang mengesankan, dengan latensi rata-rata saat melakukan hashing kunci kecil (4-16 byte) berkisar dari 1,38ns pada Apple M3 Pro hingga 2,31ns pada prosesor AMD Turin. Untuk input yang lebih besar, rapidhash mencapai throughput hingga 71GB/s pada chip Apple M4, secara signifikan mengalahkan XXH3 yang mencapai 49GB/s pada perangkat keras yang sama.

Perbandingan Kinerja: Latensi Rata-rata (Hashing kunci 4-16 byte)

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

Throughput Puncak (Hashing file 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

Kasus Penggunaan Khusus

Diskusi mengungkapkan bahwa pemilihan fungsi hash harus disesuaikan dengan kasus penggunaan tertentu. Untuk pencarian kamus dan tabel hash dengan kunci kecil, rapidhash tampaknya menjadi pemimpin saat ini. Namun, untuk aplikasi khusus di mana properti kunci diketahui dengan baik sebelumnya, fungsi hash yang dirancang khusus mungkin masih menawarkan kinerja yang lebih baik.

Titik persilangan antara algoritma yang dioptimalkan untuk latensi seperti rapidhash dan alternatif yang dioptimalkan untuk throughput terjadi sekitar 400-500 byte pada perangkat keras server modern. Untuk kunci yang lebih besar dari ambang batas ini, solusi lain mungkin lebih tepat.

Perlu dicatat bahwa bidang fungsi hash non-kriptografis telah berkembang pesat dalam beberapa tahun terakhir. Fungsi yang dianggap mutakhir satu dekade lalu sekarang dianggap rusak menurut standar saat ini. Kemajuan pesat ini telah secara signifikan meningkatkan standar untuk apa yang dianggap sebagai fungsi hash tujuan umum yang dapat diterima.

Bagi pengembang yang bekerja pada aplikasi kritis kinerja yang melibatkan tabel hash atau kamus, rapidhash mewakili pilihan menarik yang menyeimbangkan ukuran kode, kecepatan, dan kualitas. Kemampuannya untuk memproses kunci kecil dengan latensi minimal sambil mempertahankan karakteristik distribusi berkualitas tinggi menjadikannya sangat berharga untuk pengembangan perangkat lunak modern.

Referensi: rapidhash - Very fast, high quality, platform-independent