gpt4 book ai didi

java - 生成大量哈希的优化方式

转载 作者:行者123 更新时间:2023-11-29 05:37:15 24 4
gpt4 key购买 nike

目前,我实现哈希生成的方式不可扩展。我监控了 visualVM 中的运行,发现太多的 CPU 时间花在了 MessageDigest 上。 .这是代码:

public static byte[] getHash(byte[] value) {
HashCode hashCode = hashFunction.newHasher().putBytes(value).hash();
return hashCode.asBytes();
}

上面的方法是循环调用的:

List<byte[]> someList; 
for(byte[] payload : someMap.values()) {
someList.add(getHash(payload));
}

基本上,我有一个 map<SomeObject, byte[] payload)我需要散列各个值并将它们放在 List<byte[]> 中.我正在使用 Guava 的散列器,输入映射会很大。有什么我可以在这里做得更好的吗?我需要散列所有这些值的原因是因为我需要将它们存储在 HBase 中。

编辑 我在这里使用的散列算法是 MD5

最佳答案

如果您使用这些哈希码作为 validator ,您可能希望坚持使用 MD5 或 SHA1。但是,如果您使用这些哈希码作为标识符,虽然不是首选,但冲突不会破坏游戏规则,那么您可以考虑许多快速替代方案。 Bob Jenkin 的一次一次散列非常快而且非常好。您可以轻松地转换该算法以非常快速地生成更大的哈希码。

关于java - 生成大量哈希的优化方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19033761/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com