Здравствуйте!
Давно присматриваюсь к Pharo и недавно даже возникла идея написать наконец свой сайт и использовать Pharo в разработке серверной части (клиентская — на vue). Уж очень нравится подход, который называют живым программированием — отладка и исправление ошибок на ходу, в процессе работы приложения. Но настораживает одна интересная особенность. Даже если просто копаться в среде, не внося никаких изменений в образ и не сохраняя его, потребление памяти процессом pharo постоянно растёт. Если при этом периодически сохранять образ, так же, ничего не меняя в нём, размер образа тоже будет увеличиваться. Такие вещи, как вызов «System → Space left» в меню или многократный вызов «Smalltalk garbageCollect» не особо заметно влияют на процесс освобождения памяти.
Собственно,
вопрос: насколько такое поведение
нормально и чем оно объясняется? Когда
Pharo будет
работать на сервере, как будто бы никакой
проблемы нет, поскольку образ там
сохраняться не будет (это будет контейнер
docker или его
аналога, либо kubernetes).
Но вот непонятный и неконтролируемый
рост образа во время разработки несколько
напрягает. Опять же, где гарантия, что во время работы в контейнере память не начнёт утекать? Можно конечно поставить ограничение на уровне контейнера, но не рухнет ли процесс при достижении этого ограничения?