Clojure откладывает управление памятью на JVM. Хотя я не знаю глубоко кодовую базу clojure, она, вероятно, просто переназначает переменные с перезагруженным кодом, в результате чего старые объекты остаются, пока JVM не запускает сборщик мусора.
Вы можете намекнуть JVM, что вы хотите, чтобы GC запускался с использованием (System / gc), но обычно это не рекомендуется использовать.
В качестве альтернативы, если вы знаете ограничения вашей системы, вы можете повозиться с флагами памяти JVM, чтобы побудить GC работать чаще (т. Е. Использовать меньший размер кучи).
Но если у вас система, которая на самом деле не ограничена в памяти, экономия нескольких мегабайт не имеет большого значения.