Niektóre śmieciarki (przynajmniej Mono i .NET) mają obszar pamięci krótkotrwałej, który często skanują, oraz obszar pamięci pomocniczej, który skanują rzadziej. Mono nazywa to żłobkiem.
Aby dowiedzieć się, które obiekty można usunąć, skanują wszystkie obiekty, zaczynając od korzeni, stosu i rejestrów, i usuwają wszystkie obiekty, do których nie ma już odniesienia.
Moje pytanie brzmi: w jaki sposób zapobiegają skanowaniu wszystkich używanych pamięci na każdym zbiorze? Zasadniczo jedynym sposobem, aby dowiedzieć się, które obiekty nie są już używane, jest zeskanowanie wszystkich obiektów i wszystkich ich odniesień. Zapobiegnie to jednak zamianie pamięci przez system operacyjny, mimo że nie jest ona używana przez aplikację i wydaje się, że trzeba wykonać ogrom pracy, także w przypadku „Nursery Collection”. Nie wydaje się, żeby dużo wygrywali, korzystając z pokoju dziecinnego.
Czy coś mi brakuje, czy śmieciarz faktycznie skanuje każdy obiekt i każde odwołanie za każdym razem, gdy wykonuje kolekcję?