ruby中的数组大小是否有限制?

时间:2011-07-28 20:16:08

标签: ruby arrays

  

可能重复:
  Array size too big - ruby

对不起,如果有人问这个问题,我环顾四周,但并没有真正找到我想要的东西。

我正在使用ruby和mysql来创建一个基于mysql表中单个列的数组。例如,假设我有一列用户名:

 users = [] #declare array
 users.clear #clear array so that it remains so fresh and so clean on each restart

 # Update the list of users to follow
 res = dbh.query("SELECT user FROM usernameDB")
 while row = res.fetch_row do
   users << row[0] #adds each user to the array
 end

直到现在,当我们开始接收更多用户时,这已经很好了。现在代码给了我未知的错误。

在尝试进行故障排除时,我只是注释掉了大部分内容并使用几个用户名构建了数组,一切都恢复了。所以我的问题是,ruby数组中的数量或项目是否有限制?

谢谢!

2 个答案:

答案 0 :(得分:5)

Ruby没有强加软件限制,但是流程可以支持多少限制。如果你有一个运行Ruby服务器的常规家庭服务器,它将能够处理一个数组,直到数组变得太大,此时它将开始“陷入困境”,滞后,崩溃等。另一方面,如果你有一个非常强大的企业服务器,它可以处理一个更大的数组,但如果数组变得太大而无法处理进程和硬件(内存),它仍会最终崩溃/滞后。

我没有任何具体的数字,因为这完全取决于服务器上的硬件和软件。

答案 1 :(得分:3)

看一下这篇文章:Array size too big - ruby。 6亿的规模太大,但有5亿人工作。

您使用的阵列有多大?问题可能是你的内存不足!