2015-04-20 3 views
8

Я начал читать о языке программирования Elixir.Есть ли у Elixir сборщик мусора?

Я понимаю, что:

  1. Это функциональный
  2. Он динамичен, но поддержка @spec
  3. Он основан на Erlang VM

Мой вопрос: Есть ли у нее вроде GC?

+1

Сторона примечания: '@ spec' ** аннотации **, они не поняты компилятором Elixir (или Erlang). Они в основном используются статическим анализатором под названием [диализатор] (http://www.erlang.org/doc/man/dialyzer.html). – whatyouhide

+0

например ... если получить список строк из сети, а затем я использую его в чистой функции, что происходит, когда функция возвращается? Этот список немедленно уничтожен или уничтожен каким-то GC? –

ответ

14

Да, у Erlang есть GC, а так как Elixir построен на Erlang, у него тоже есть GC. См. Этот старый SO answer об Erlang GC и this. Сайт Elixir относится к ГХ следующим образом:

Благодаря своей легкой природе, это не редкость, чтобы сотни тысяч процессов, работающих одновременно в одной и той же машине. Изоляция позволяет обрабатывать мусор независимо друг от друга, уменьшает общесистемные паузы и использует все ресурсы машины как можно эффективнее (вертикальное масштабирование).

+10

также в elixir вы можете визуализировать мусор, поскольку он собирается, если вы запускаете: observer.start() и смотрите графики, когда ваша программа работает. – GavinBrelstaff

+0

Удивительный! Я не знал этого, спасибо! –

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