Я начал читать о языке программирования Elixir.Есть ли у Elixir сборщик мусора?
Я понимаю, что:
- Это функциональный
- Он динамичен, но поддержка @spec
- Он основан на Erlang VM
Мой вопрос: Есть ли у нее вроде GC?
Я начал читать о языке программирования Elixir.Есть ли у Elixir сборщик мусора?
Я понимаю, что:
Мой вопрос: Есть ли у нее вроде GC?
Да, у Erlang есть GC, а так как Elixir построен на Erlang, у него тоже есть GC. См. Этот старый SO answer об Erlang GC и this. Сайт Elixir относится к ГХ следующим образом:
Благодаря своей легкой природе, это не редкость, чтобы сотни тысяч процессов, работающих одновременно в одной и той же машине. Изоляция позволяет обрабатывать мусор независимо друг от друга, уменьшает общесистемные паузы и использует все ресурсы машины как можно эффективнее (вертикальное масштабирование).
также в elixir вы можете визуализировать мусор, поскольку он собирается, если вы запускаете: observer.start() и смотрите графики, когда ваша программа работает. – GavinBrelstaff
Удивительный! Я не знал этого, спасибо! –
Сторона примечания: '@ spec' ** аннотации **, они не поняты компилятором Elixir (или Erlang). Они в основном используются статическим анализатором под названием [диализатор] (http://www.erlang.org/doc/man/dialyzer.html). – whatyouhide
например ... если получить список строк из сети, а затем я использую его в чистой функции, что происходит, когда функция возвращается? Этот список немедленно уничтожен или уничтожен каким-то GC? –