在雜湊函式的專業領域中,一個名為 rapidhash 的新競爭者已經嶄露頭角,有望成為小型鍵值雜湊處理的最新技術標杆。據社群專家表示,rapidhash 代表了非加密雜湊函式在平衡速度、質量和平臺相容性方面的重大進步。
速度與質量的平衡
雜湊函式是計算領域的基礎構建模組,應用於從雜湊表和字典到校驗和和資料驗證的各種場景。理想的雜湊函式能夠在儘可能快速處理資料的同時,將輸入均勻分佈在其輸出空間中。然而,長期以來,吞吐量、延遲和質量之間一直存在著根本性的權衡。
「雜湊函式在吞吐量和延遲之間存在著根本性的權衡。rapidhash 演算法顯然針對小型鍵值(如字串字典等)的低延遲場景進行了最佳化。」
rapidhash 的特別之處在於它在處理小型鍵值(通常是小於100位元組的字串)時表現出色,同時保持高質量的分佈特性。這使其在雜湊對映實現中特別有價值,因為在處理大量小型字串時,呼叫雜湊函式本身的開銷變得非常顯著。
超越 XXH3:質量至關重要
儘管 XXH3 多年來一直是流行選擇,但社群專家指出,它在 SMHasher3(一個評估雜湊函式質量的綜合測試套件)中約15%的測試中失敗。相比之下,rapidhash 通過了 SMHasher 和 SMHasher3 的所有測試,同時提供更出色的效能。
雜湊函式的質量指的是它多接近隨機預言機——本質上是指它如何均勻地將任何給定的輸入集分佈在其輸出空間中。雖然像 SHA-256 這樣的加密雜湊函式在這方面表現出色,但它們通常要慢得多。像 rapidhash 這樣的非加密函式旨在找到速度和質量之間的最佳平衡。
效能基準測試顯示,rapidhash 在雜湊小型鍵值(4-16位元組)時取得了令人印象深刻的結果,平均延遲從 Apple M3 Pro 上的1.38納秒到 AMD Turin 處理器上的2.31納秒不等。對於更大的輸入,rapidhash 在 Apple 的 M4 晶片上可達到高達71GB/秒的吞吐量,明顯超過 XXH3 在相同硬體上的49GB/秒。
效能比較:平均延遲(4-16位元組鍵的雜湊處理)
雜湊函式 | 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 |
峰值吞吐量(16KB-2MB檔案的雜湊處理)
雜湊函式 | 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 |
專業化應用場景
討論表明,雜湊函式的選擇應該針對特定的使用場景。對於具有小型鍵值的字典查詢和雜湊表,rapidhash 似乎是當前的領導者。然而,對於那些鍵值屬性事先已知的專業應用,定製設計的雜湊函式可能仍然提供更好的效能。
在現代伺服器硬體上,延遲最佳化演算法(如 rapidhash)和吞吐量最佳化替代方案之間的交叉點大約在400-500位元組左右。對於大於此閾值的鍵值,其他解決方案可能更為適合。
值得注意的是,非加密雜湊函式領域在近年來發展迅速。十年前被認為是最先進的函式,按照今天的標準可能已被視為失效。這種快速進步顯著提高了對通用雜湊函式的要求標準。
對於從事涉及雜湊表或字典的效能關鍵型應用的開發人員來說,rapidhash 代表了一個平衡程式碼大小、速度和質量的有力選擇。其能夠以最小延遲處理小型鍵值,同時保持高質量分佈特性的能力,使其在現代軟體開發中特別有價值。
參考:rapidhash - Very fast, high quality, platform-independent