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

有64位Ruby吗?

发布时间:2020-12-17 03:08:44 所属栏目:百科 来源:网络整理
导读:似乎人们正在为64位平台编译MRI Ruby(1.8.7).我一直在寻找和阅读一段时间而没有真正得到我想要的答案.我想知道的是,如果你们中的任何人实际上在Ruby中使用了超过4GB的内存?如果以这种方式编译,Ruby真的是64位吗? 我在源代码中发现了注释,表明它没有在64位
似乎人们正在为64位平台编译MRI Ruby(1.8.7).我一直在寻找和阅读一段时间而没有真正得到我想要的答案.我想知道的是,如果你们中的任何人实际上在Ruby中使用了超过4GB的内存?如果以这种方式编译,Ruby真的是64位吗?

我在源代码中发现了注释,表明它没有在64位上进行测试.例如,它说“BigDecimal尚未在64位整数系统上编译和测试.”在BigDecimal的评论中.

了解Ruby的其他实现如何以64位进行操作也很有趣.

解决方法

MRI(1.8.x和1.9.x线)可以编译为64位.

例如,Snow Leopard捆绑了1.8.7编译为64位.这可以在活动监视器中看到,或者通过询问来自irb,例如42.size.如果以64位编译,则将获得8(字节),否则将获得4(字节).

Ruby将能够访问超过4G的ram.例如:

$irb
>> n = (1 << 29) + 8
=> 536870920
>> x = Array.new(n,42); x.size
=> 536870921  # one greater because it holds elements from 0 to n inclusive

如果你没有超过4 G或ram,那么获取最后一行将需要一段时间,因为操作系统将交换很多,但即使在我的4 GB机器上也可以.该过程的虚拟柱塞尺寸为4.02 G.

我更新了过时的bigdecimal html文件中的注释(从2003年3月开始……)

(编辑:李大同)

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

    推荐文章
      热点阅读