GC освобождает память объектов, которые больше недостижимы из корней приложения. Он обходит граф ссылок, сохраняет живые объекты и возвращает память остальных для повторного использования.
Как работает Garbage Collector?
GC освобождает память объектов, которые больше недостижимы из корней приложения. Он обходит граф ссылок, сохраняет живые объекты и возвращает память остальных для повторного использования.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
GC освобождает память объектов, которые больше недостижимы из корней приложения. Он обходит граф ссылок, сохраняет живые объекты и возвращает память остальных для повторного использования.
В .NET поколенческий подход сокращает стоимость частых сборок короткоживущих объектов. При уплотнении объекты могут перемещаться, а ссылки корректируются; детали зависят от режима и области кучи.
Это не подсчёт ссылок: недостижимый цикл объектов тоже может быть собран. GC не устраняет все утечки — удерживающая ссылка из кеша, события или статического поля оставляет объект живым. Файлы и соединения освобождают своевременно через Dispose, не ожидая сборки памяти.