一個新的64位雜湊函式 ChibiHash 的釋出,在開發者社群引發了關於雜湊函式測試方法以及簡潔性與效能平衡的有趣討論。雖然原始實現展示了令人期待的基準測試結果,但社群的反響揭示了關於雜湊函式開發和驗證的更深層見解。
效能對比(大型輸入):
- ChibiHash64:18.08 GiB/秒
- XXHash64:12.59 GiB/秒
- City64:14.95 GiB/秒
- Spooky64:13.83 GiB/秒
主要特點:
- 程式碼量:約60行C程式碼
- 可移植性:無硬體特定指令
- 非加密型
- 公共領域
- 獨立於位元組序
測試方法爭議
圍繞使用 SMHasher 作為驗證工具的討論引起了廣泛關注。儘管透過 SMHasher 測試傳統上被認為是雜湊函式質量的良好指標,但一些社群成員提出了關於古德哈特定律的擔憂——即當一個指標成為目標時,它就不再是一個好的衡量標準。然而,包括雜湊函式開發者在內的專家們為這種測試的實際必要性進行了辯護:
雜湊測試一直都是目標。對於非加密雜湊函式,除此之外還能怎麼做?
效能和實現權衡
社群強調了 ChibiHash 實現選擇的有趣方面,特別是關於記憶體對齊和架構相容性。技術專家指出,雖然該實現對位元組載入的處理方式是正確和可移植的,但效能特徵在不同架構上會有所不同。在 x86 平臺上,除了在快取行邊界處,未對齊的載入對效能影響不大,而其他架構則透過其記憶體訪問模式自然地保持對齊。
大小與功能之爭
與 Meow hash 的對比凸顯了程式碼大小作為設計約束的重要性。社群強調, ChibiHash 的小型程式碼庫(約60行程式碼)除了美觀之外還提供了多個優勢,包括更容易整合、更好的內聯能力和簡化的安全審計。這與那些可能以增加複雜性為代價來獲得微小效能提升的更復雜實現相比,代表了一種不同的方法。
行業專家的驗證
值得注意的是, SMHasher 和 Murmurhash 的原作者已經審查了 ChibiHash 的實現,並未發現其方法存在任何根本性問題。這位業內受人尊敬的人物的認可,為這個相對簡單的實現增加了可信度。
圍繞 ChibiHash 的討論展示了雜湊函式開發的持續演進,社群繼續在程式碼大小、效能和驗證方法等各種因素之間尋求平衡。雖然它並不定位為加密或高安全性雜湊函式的替代品,但 ChibiHash 代表了輕量級通用雜湊函式生態系統中的一個有趣補充。