Может кто-нибудь объяснить мне.Сборщик мусора asp.net
Что такое алгоритм сбора мусора?
Как сборщик мусора работает в фоновом режиме?
Может кто-нибудь объяснить мне.Сборщик мусора asp.net
Что такое алгоритм сбора мусора?
Как сборщик мусора работает в фоновом режиме?
GCs возникают только при заполнении кучи. Когда сборщик мусора запускает работает, он делает предположение, что все объекты в куче - мусор. Иными словами, он предполагает, что ни один корней приложения ссылается на на любые объекты в куче. Теперь сборщик мусора начинает ходить по корням и строить график всех объектов , доступных из корней. Например, для сборщик мусора может найти глобальную переменную, которая указывает на объект в куче.
Следующий рисунок показывает кучу с нескольких выделенных объектов, где корни приложения 1 относятся непосредственно к объектам Obj1, obj2 и применение корневых 2 относятся к Obj4 и obj5. Все эти объекты становятся частью графика . При добавлении объекта Obj2 из корневого приложения 1 сборщик замечает, что этот объект относится к . Объект Obj7 также добавляется в график . Коллекционер продолжает ходить через все доступные объекты рекурсивно.
alt text http://www.c-sharpcorner.com/UploadFile/ankithakur/GCAlgorithm12222005224854PM/Images/GC.gif
... Продолжение here
Вот несколько других ссылок, чтобы вы читаете по сбору мусора:
Вот основная идея для GC.
==========================================
Каждое приложение имеет набор корней. Корни определяют места хранения, которые относятся к объектам в управляемой куче или к объектам, для которых установлено значение null.
Например:
- Все глобальные и статические указатели объектов в приложении. - Любые локальные указатели объектов переменных/параметров в стеке потока. - любые регистры процессора, содержащие указатели на объекты в управляемой куче. - указатели на объекты из Freachable очереди
Список активных корней, поддерживаемых (JIT) компилятор точно в срок и общеязыковой среды выполнения, и становится доступным для алгоритма сборщика мусора