Есть ли 64-битный Ruby? - PullRequest
       9

Есть ли 64-битный Ruby?

5 голосов
/ 02 декабря 2009

Похоже, что люди собирают MRI Ruby (1.8.7) для 64-битных платформ. Я искал и читал некоторое время, не получая ответы, которые я хочу. Что я хочу знать, так это если кто-то из вас, ребята, использовал более 4 ГБ памяти в Ruby? Действительно ли Ruby 64-битный, если вы его так скомпилируете?

Я нашел комментарии в исходном коде, указывающие на то, что он не тестировался на 64-битной версии. Например, он говорит «BigDecimal еще не был скомпилирован и протестирован в 64-битной целочисленной системе». в комментариях к BigDecimal .

Было бы также интересно узнать, как другие реализации Ruby работают в 64-битном режиме.

1 Ответ

7 голосов
/ 02 декабря 2009

MRI (линия 1.8.x и 1.9.x) может быть скомпилирована как 64 бита.

Например, Snow Leopard поставляется с 1.8.7, скомпилированным как 64 бита. Это можно увидеть в мониторе активности или из irb, задав, например, 42.size. Вы получите 8 (байт), если он скомпилирован в 64 бита, 4 (байт) в противном случае.

Руби сможет получить доступ к 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 ГБ или оперативной памяти, потому что операционная система сильно поменяется, но даже на моей машине с 4 ГБ это работает. Размер виртуальной оперативной памяти для процесса составил 4,02 г.

Я обновил комментарий в файле bigdecimal html, который устарел (с марта 2003 года ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...