gpt4 book ai didi

ruby - 有 64 位 Ruby 吗?

转载 作者:数据小太阳 更新时间:2023-10-29 07:14:55 24 4
gpt4 key购买 nike

似乎人们正在为 64 位平台编译 MRI Ruby (1.8.7)。我已经搜索和阅读了一段时间,但没有真正得到我想要的答案。我想知道的是你们中有没有人真的在 Ruby 中使用了超过 4GB 的内存?如果以这种方式编译,Ruby 真的是 64 位的吗?

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

了解 Ruby 的其他实现在 64 位中的表现也很有趣。

最佳答案

MRI(1.8.x 和 1.9.x 系列)可以编译为 64 位。

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

Ruby 将能够访问超过 4G 的内存。例如:

$ 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 月开始...)

关于ruby - 有 64 位 Ruby 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1829310/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com