【问题标题】:How many elements can perl hash have?perl hash 可以有多少个元素?
【发布时间】:2013-01-17 08:39:54
【问题描述】:

我想知道 Perl 哈希数据结构可以容纳多少元素是否有限制?我假设它可能取决于您有多少可用内存。值和键大小与它可以容纳多少元素有关吗?

【问题讨论】:

  • 您心中有一个您关心的项目吗?您是否担心 10,000 个密钥可能会用完空间? 10,000,000 把钥匙?
  • 是的,我的数据有 500 亿个元素。

标签: perl hash


【解决方案1】:

没有琐碎的固定上限。这取决于系统中可用的内存。如果散列的键较大,则内存不足的速度会比它们较小时更快。与哈希中的值类似;它们越大,内存越快耗尽。

通常,适合散列的元素数量是您的问题中最少的;如果你的内存用完了,你可能应该重新考虑你的算法。

【讨论】:

  • 这是有道理的。在 Java 中,您有 VM 限制,而您的应用程序也受此限制。由于 Perl 没有,我假设如果操作系统允许,它会占用你的大部分 RAM。
  • 是的;如果操作系统允许它使用内存,Perl 就会使用它(如果你的程序需要它)。
  • 您可以在 Perl 的 sv.hhv.hperl.h 中搜索代码,但如果您之前没有研究过代码,您很快就会被这些变化弄糊涂。有一个 32 位无符号值存储键值的散列,但散列冲突似乎不太可能导致问题(散列中的 40 亿个不同键总共需要大量内存,即使这些值是每个只有一个字节)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-18
  • 1970-01-01
  • 2012-01-08
  • 1970-01-01
  • 2017-09-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多