哈希表性能突然下降

时间:2013-11-29 00:15:21

标签: hashtable

我最近在Java中使用哈希表实现了一种算法。我将它与其他一些具有相当大的数据输入大小的算法进行了比较,例如100000。

让我印象深刻的是,一旦我的数据输入大小超过10000,哈希表的性能就会急剧下降。为了强调这一下降,输入大小为5000的时间为4000毫秒,输入大小为5000时突然上升到172000毫秒。

有人可以向我解释一下这是什么原因吗?我真的很想知道。

谢谢!

1 个答案:

答案 0 :(得分:0)

对于任何人来说,这个问题太过含糊,无法给出明确的答案,但如果我不得不猜测我会说你遇到了碰撞。 java的HashMap的库存实现使用链表来保存键'哈希冲突的条目,如果hashCode方法被错误定义,肯定会发生;也许会返回一个恒定的值。

话虽如此,如果你只是测量经过的时间,那不会告诉你太多。也许你越过了一个导致重大垃圾收集发生的门槛。在得出任何结论之前,您应该尝试在JVM和哈希表充分预热后测量性能,并进行大量测量并考虑其平均值。