2014-01-26 81 views

回答

2

這取決於你想要做什麼。

如果您使用bloom過濾器來避免磁盤I/O,那麼在散列函數中花費更多時間可能是有意義的,以便儘可能少地發生散列衝突。布隆過濾器用於例如避免log structured merge tree的磁盤I/O。通常使用cryptographically secure hash function是沒有意義的,但是類似的,例如xxhashMurmurHash

如果您想使用布隆過濾器來避免內存查找,那麼您可能希望使用更快的哈希函數,例如只是輸入的異或,或者使用Fletcher checksum

快速與慢速哈希函數的優缺點和一些測試are available here的一個很好的解釋。

+0

總的來說,我打算使用布隆過濾器來管理輸入和關聯的「動作」,一般來說沒有任何與磁盤或存儲相關的事情,15/20週期哈希函數是什麼?快嗎?慢 ? – user2485710

+0

你的意思是每個散列15到20個週期?那會好的。或者每個字節15到20個週期?我認爲這會減緩。每個哈希值爲 –

+0

;還有什麼更好? – user2485710