performance - 具有内存限制的系统的哈希表

标签 performance algorithm memory-management data-structures hashtable

我已经阅读了哈希表的变体,但我不清楚哪一个更适合内存不足的系统(我们有内存约束限制)。
线性/二次探测适用于稀疏表。
我认为 Double hashing 在这方面与 Quadratic 相同。
外部链接不存在集群问题。
我查过的大多数教科书似乎都假设额外的空间总是可用的,但实际上在我见过的大多数示例实现中,因为哈希表永远不会减半,所以占用的空间比实际需要的多得多。
那么,当我们想要充分利用内存时,哪种哈希表变体最有效?

更新:
所以我的问题不仅仅是桶的大小。我的理解是,桶的大小负载下的性能都很重要。因为如果存储桶的大小很小但表在 50% 的负载下降级,那么这意味着我们需要经常调整到更大的表。

最佳答案

参见 this variantCukoo Hashing .

这将需要您提供更多哈希函数,但是,这是有道理的 - 您需要为节省的内存付出一些代价。

关于performance - 具有内存限制的系统的哈希表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30514705/

相关文章:

C# 这是 ReadOnlySpan<T> 的正确用法吗?

algorithm - 减去链表节点

c++ - 从 CUDA 数组中删除元素

objective-c - 我在 Objective c 中的 String 中的 subString 问题

C++ 删除具有有效地址的指针

c++ - 将对象传递给期望 shared_ptr 的函数而不实际共享所有权

javascript - Nodejs/expressjs 中请求参数的字符串不可变性问题

performance - Android Studio变慢且无响应

jquery - 在所有浏览器中缓存 jQuery REST Ajax 响应

c - 性能下降