Есть ли ограничение на размер целых чисел Erlang?

Я знаю, что Erlang имеет целые числа произвольного размера, но есть ли максимальный предел для одной из стандартных реализаций? Если да, то?


person Filip Haglund    schedule 01.09.2016    source источник


Ответы (2)


Erlang использует арифметику bignum, а целые числа в Erlang ограничены доступной памятью на машине. Практически нет ограничений на размер целого числа в Erlang. Взгляните на этот документ: http://erlang.org/doc/efficiency_guide/advanced.html. более подробные пояснения относительно лимитов.

person fycth    schedule 01.09.2016
comment
Похоже, ограничением является память виртуальной машины, которая составляет 536 870 911 байт (537 МБ) в 32-битной системе и 2 305 843 009 213 693 951 байт (2,3 ЭБ) в 64-битной системе. Поскольку мы можем хранить данные в первых 28 или 60 битах 32- или 64-битного поля, мы должны иметь возможность хранить целые числа примерно до 2 ^ 2 ^ 63,9 или 10 ^ 10 ^ 18,7, учитывая 2,3 ЭБ ОЗУ на 64-битной машине. , или 10 ^ 10 ^ 9, учитывая полгигабайта оперативной памяти на 32-битной машине. - person Filip Haglund; 14.09.2016
comment
Мне нравится, что используется bignum, но благодаря тегам достаточно маленькие целые числа занимают всего 1 слово (без накладных расходов на память). - person YvesgereY; 17.02.2021

В 32-битных архитектурах: -134217729 < i < 134217728 (28 бит).

В 64-битных архитектурах: -576460752303423489 < i < 576460752303423488 (60 бит).

person ghnome    schedule 08.09.2016
comment
Это пределы для малых целых чисел. Я спрашивал о больших целых числах произвольного размера. - person Filip Haglund; 09.09.2016