V posledných dvoch dieloch sme si o GC povedali celkom dosť, ale ak ste si mysleli, že to už bola dosť hlboká úroveň, ktorú sme o GC skúmali, tak ste sa mýlili ;-) Teraz ideme ešte hlbšie, takže si držte klobúky.
Generácie Z prvého dielu tejto mini série viete, že objekt je odstránený z pamäti vtedy, keď naň neodkazuje žiaden z ostatných existujúcich objektov. GC si preto zostavuje tzv. „mapu objektov“ a hľadá, ktoré objekty ostatnú nakoniec osamotené (bez referencie na iný objekt). Viete si asi predstaviť, že zostavenie spomínanej mapy pri veľkom počte objektov v rámci aplikácie môže byť echt časovo náročné ;-).
Preto jeden z programátorov GC prišiel s myšlienkou, rozdeliť objekty do generácií, podľa toho, či už „prežili“ predchádzajúce čistenie. V .NET 3.5 existujú 3 generácie 0, 1, 2.
Vychádza sa zo štatistického predpokladu, že väčšina práve vytvorených objektov sa odkazuje len medzi sebou, v rámci danej metódy a neodkazujú na staršie objekty vytvorené pred predchádzajúcim čistením. Tieto novovytvorené objekty sú zaradené do generácie 0.






