目前,我实现哈希生成的方式是不可扩展的。我监控了 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[]>
. 我正在使用番石榴的哈希器,输入地图会很大。有什么我可以在这里做得更好的吗?我需要散列所有这些值的原因是因为我需要将它们存储在 HBase 中。
编辑我在这里使用的散列算法是MD5