Обычно вновь созданные объекты классифицируются как Gen0. Если этот объект не был GCed в этом цикле, он будет называться непереработанным объектом и будет повышен до Gen1 в следующем цикле и так далее. Цикл обновит его до Gen2... и так далее.
Чем ниже уровень классификации, и мусора, а чем выше уровень, тем меньше триггеров. Хотя .NET Framework использует систему 3-го поколения, пространство Gen0 и Gen1 меньше, обычно около. 16 МБ, а стоимость относительно низкая; GC Gen2 является конечной точкой всех объектов. Размер может быть в ГБ. В .NET это база данных номеров whatsapp в финляндии называется полной сборкой мусора. Объекты, переживающие это поколение, занимают много времени. Позиция не будет перемещена, а будет ждать следующего GC. Стоит отметить, что после каждого цикла сборки мусора количество объектов в Gen0 должно вернуться к нулю (либо переработанные, либо повышенные до Gen1, могут сохраняться объекты, повышенные из Gen0, а Gen2 в дополнение к объектам, повышенным из Gen1). Также можно хранить предметы, которые не перерабатываются.
Конечно, концепция алгоритмов поколений может быть расширена за пределы трех поколений систем, в зависимости от требований.
Сборка мусора поколений в .NET
Рисунок 1. Механизм генерации мусора в .NET ( источник изображения )
Gen0 Ген1 Ген2
Объекты с самым коротким временем существования, например временные переменные.
GC запускает наиболее частое поколение.
В качестве буфера сохраняйте объекты с коротким временем жизни. Размещайте объекты, которые живут дольше всего, например статические данные, сохраняемые в обработчике.
тем чаще срабатывает механизм сборк
-
- Posts: 43
- Joined: Sat Dec 21, 2024 6:25 am