Существует ли 64-разрядный Ruby?

От Artima Ввод: Сильный по сравнению со Слабым, Статическим по сравнению с Динамическим статья:

строгий контроль типов предотвращает смешивание операций между несогласованными типами. Для смешивания типов необходимо использовать явное преобразование

, слабый контроль типов означает, что можно смешать типы без явного преобразования

В статье Pascal Costanza, Динамичный по сравнению со Статическим контролем типов — Основанный на шаблоне Анализ (PDF), он утверждает, что в некоторых случаях, статический контроль типов более подвержен ошибкам, чем динамический контроль типов. Некоторые статически типизированные языки вынуждают Вас вручную эмулировать динамический контроль типов, чтобы сделать "Правильную Вещь". Это обсуждено в Лямбда Окончательное .

5
задан Jonas Elfström 1 December 2009 в 22:12
поделиться

1 ответ

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

Например, Snow Leopard поставляется в комплекте с 1.8.7, скомпилированным как 64-бит. Это можно увидеть в мониторе активности или в irb , запросив, например, 42.size . Вы получите 8 (байтов), если он скомпилирован в 64 бита, и 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 Гбайт или оперативной памяти, потому что ОС часто меняет местами, но даже на моей машине с 4 Гбайт это работает. Размер виртуального ОЗУ для процесса составлял 4,02 Г.

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

7
ответ дан 14 December 2019 в 08:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: