2016-11-25 2 views
2

В erlang количество атомов, которые вы можете создать, ограничено 1 048 576, и это не сбор мусора. В документах gen_server указано, что атомы не собираются в мусор, но я не могу выяснить, существует ли предел.Ограничение числа атомов

Есть ли у эликсира предел? И если да, то что это?

+2

Обратите внимание, что до тех пор, пока вы не совершаете кардинальный грех динамической генерации атомов (происходит сразу после убийства по шкале социальной морали для большинства Эрлангер), вы никогда не приблизитесь к этому пределу. Кроме того, в сборке находится сбор мусора. Более интересный вопрос: «Какую проблему вы пытаетесь решить путем динамической генерации атомов?» Для этого есть очень много хороших случаев (но есть несколько - большинство из них связаны с метапрограммированием, именованием сгенерированных модулей и еще чего-то). – zxq9

ответ

8

Эликсир работает на той же виртуальной машине, что и Эрланг, и, следовательно, он подчиняется тем же пределам атомов, что и Эрланг.

+0

Возможно, ограничения немного меньше, если мы рассмотрим добавленные модули. Во всяком случае, это число незначительно по сравнению с общим числом атомов. – ipinak

+7

Кроме того, этот предел можно изменить при запуске VM, используя флаг ['+ t'] (http://erlang.org/doc/man/erl.html#+t). – aronisstav

Смежные вопросы