Сохраняет ли clojure repl возвращаемое значение предыдущих команд - PullRequest
0 голосов
/ 12 июня 2018

Если я выполню следующие команды в ответе clojure:

(take 5000000 (range))

Эта команда печатает числа до 5 миллионов (это занимает некоторое время), а использование памяти в clojure увеличивается до 750 МБ во время выполнения and it stays at that throughout the rest of the session.Хранит ли repl возвращаемое значение предыдущих команд или это из-за утечки памяти в clojure?

1 Ответ

0 голосов
/ 12 июня 2018

Да, Clojure REPL сохраняет результат трех последних выражений :

При использовании REPL доступно несколько специальных переменных:

  • * 1, * 2, * 3 - содержит результат трех последних выражений, которые были оценены

  • * e - содержит результат последнего исключения

Как только вы выполните больше выражений, и результат, занимающий так много памяти, больше не будет ссылаться одним из *1, *2 и *3, то при следующем запуске сборщика мусора должен быть восстановленэта память.

...