簡體   English   中英

Java / Scala中的高性能字符串散列函數

[英]High performance string hashing function in Java/Scala

在Java / Scala中尋找高性能的字符串散列函數 - 比MurmurHash系列的函數更快,不需要加密強大,只能很好地分發。

有什么建議?

適合該法案的最快哈希算法似乎是xxHash lz4-java項目包含一個移植到Java實現 我不知道Java實現是否已經針對MurmurHash進行了基准測試; C ++中的性能優化並不總是移植到/來自Java。 (特別是,xxHash包含更多的數組訪問,因此可能存在不可忽略的邊界檢查開銷。)

編輯:它看起來像我使用JNI來調用xxHash的C ++實現,但JNI開銷是不可忽略的,因此性能問題仍然存在。

但是,鑒於Scala 包含一個MurmurHash函數 ,並且Java包含一個更快的默認哈希值(大約2倍),有時可以合理地分布,人們確實想知道它是否真的有必要。 例如, scala.util.hashing.MurmurHash3與從字節數組創建字符串的速度一樣快,如果給它一個字節數組,速度是它的兩倍。

你可以找到非常快速的Java哈希函數實現,BTW帳戶內部的String實現( char[]數組)以最大化速度,這里: https//github.com/OpenHFT/Zero-Allocation-Hashing

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM