似乎人们正在为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
Run Code Online (Sandbox Code Playgroud)
如果你没有超过4 G或ram,那么获取最后一行将需要一段时间,因为操作系统会交换很多,但即使在我的4 GB机器上它也能工作.该过程的虚拟柱塞尺寸为4.02 G.
我更新了过时的bigdecimal html文件中的注释(从2003年3月开始......)
| 归档时间: |
|
| 查看次数: |
3623 次 |
| 最近记录: |