加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

数组大小太大 – 红宝石

发布时间:2020-12-16 20:53:05 所属栏目:百科 来源:网络整理
导读:我收到一个’ArgumentError:数组大小太大’消息,带有以下代码: MAX_NUMBER = 600_000_000my_array = Array.new(MAX_NUMBER) 题.在Ruby中,Array.new函数的最大值是多少? 解决方法 具有5亿个元素的数组大小为2 GiBytes,这取决于您使用的特定操作系统,通常是
我收到一个’ArgumentError:数组大小太大’消息,带有以下代码:
MAX_NUMBER = 600_000_000
my_array = Array.new(MAX_NUMBER)

题.在Ruby中,Array.new函数的最大值是多少?

解决方法

具有5亿个元素的数组大小为2 GiBytes,这取决于您使用的特定操作系统,通常是进程可以解决的最大值.换句话说:您的数组比地址空间大.

因此,解决方案是显而易见的:要么使数组更小(比方说,将其分解为块),要么使地址空间更大(在Linux中,您可以修补内核以获得3,3.5甚至4 GiByte的地址空间,当然,切换到64位操作系统和64位Ruby实现(!)也可以工作).

或者,您需要重新考虑您的方法.也许使用mmap而不是数组,或类似的东西.也许懒得加载你需要的部分.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读