Синглтоны, скорее всего, реализованы с использованием переменной static
. Конечные static
переменные не являются сборщиком мусора (если только их загрузчик классов не является сборщиком мусора).
Таким образом, память, занятая синглтоном, никогда не освобождается автоматически, потому что синглтон никогда не собирается мусором.
Однако можно установить для переменной static
значение null
. Тогда я думаю, что это будет сборщик мусора.
Когда вы останавливаете свой контейнер (IIS или что-то еще), память освобождается, а при перезапуске экземпляр Singleton создается снова.
P.S. Похоже, я говорю о Java, но это должно быть почти то же самое в C #