Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Ruby中初始化哈希的大小?_Ruby_Hash - Fatal编程技术网

如何在Ruby中初始化哈希的大小?

如何在Ruby中初始化哈希的大小?,ruby,hash,Ruby,Hash,我想为Ruby中的哈希指定一个初始大小。我知道我将在散列中添加数千万个条目,每次Ruby决定需要一个更大的散列时,都会浪费大量时间重新对数据进行散列 其他语言支持类似“reserve”的调用来预先调整散列的大小。这可以在Ruby中完成吗?Ruby的哈希没有任何方法可以做到这一点。无论是哪种方式,它都应该是相对性能好的,但是您可能需要考虑其他数据存储方法,比如像MeCCACHE或RADIS那样的数据库或密钥/值存储,用于该数据集。您是否有实验数据表明它太慢,并且重散列是原因吗?很难确认它是重置的,

我想为Ruby中的哈希指定一个初始大小。我知道我将在散列中添加数千万个条目,每次Ruby决定需要一个更大的散列时,都会浪费大量时间重新对数据进行散列


其他语言支持类似“reserve”的调用来预先调整散列的大小。这可以在Ruby中完成吗?

Ruby的哈希没有任何方法可以做到这一点。无论是哪种方式,它都应该是相对性能好的,但是您可能需要考虑其他数据存储方法,比如像MeCCACHE或RADIS那样的数据库或密钥/值存储,用于该数据集。

您是否有实验数据表明它太慢,并且重散列是原因吗?很难确认它是重置的,但每隔一段时间,当我向散列中添加一个元素时,需要比正常情况多几个数量级的时间。我想这是在重新灰化。ActiveRecord非常适合将内容推送到数据库。只是想知道-你在操作什么样的数据?我做数据挖掘。我有数亿条记录的表格需要快速处理。把东西放在磁盘上或放回数据库会使速度太慢。我使用散列,因为它的性能接近O(1)。很难打败它。Stalkii,你可能想考虑显示你的模式,并要求优化和/或查询帮助。当数据库设置正确时,仍然可以快速访问数亿条记录。Java HashMap使用单独的链表链接,Ruby Hash使用的是什么数据结构/算法?