C# Что такое поколения у сборщика мусора?


#1

Встретил понятия поколений у сборщика мусора и хотелось бы понять что именно имеется ввиду под этими поколениями, а также какие они бывают (если есть разные).


#2

Под поколениями в сборщике мусора подразумеваю, то в какой области памяти (поколении) объект будет находится. И тут нужно сказать, что все объекты GC делит на 2 категории: 1-я - это маленькие объекты (их размер должен быть меньше 83 Кб) и 2-я - это большие объекты (их размер больше 83 Кб).
В зависимости от того в какой области памяти (поколении) они находиться, объект определяется, как долго живучий или с короткой жизнью, как часто GC будет проверять его на необходимость удаления. Опять же между маленькими и большими объектами есть разница, которая состоит в следующем:
маленькие объекты имеют несколько поколений и при их создании они попадают в самое молодое поколение (нулевое поколение), а у больших объектов есть только одно поколение - второе и они всегда (при жизни) будут находится в нём.
Если хотите ещё более детально разобраться с работой сборщика мусора, то можете почитать рихтера или посмотреть это видео


#3

спасибо!