哈希数组映射尝试内存分配

时间:2015-03-11 04:45:41

标签: c# algorithm memory hashmap hashtable

我正在读这个http://lampwww.epfl.ch/papers/idealhashtrees.pdf,在第5页到第6页的末尾,他谈到了一个包含32个免费表链表的数组。

在算法中,当您向表中添加节点时,您将调整大小1然后追加它。

我不明白拥有此免费表链表的好处。预先分配它们并在运行中分配它们之间有什么区别?如果你预分配那么你就是在浪费内存,所以HAMT的主要好处就会被打败,而且你也会快速耗尽预先分配的表来使用,所以从一开始就是浪费。

我根本不理解论文的那一部分。无论哪种方式你都在分配这些数组,那么这个更复杂的版本如何比简单地按需重新分配更好?如果它对内存优化产生任何影响,我会在C#中对此进行编码。

0 个答案:

没有答案