कुछ (कम से कम मोनो और .NET के) कचरा संग्रहकर्ताओं के पास एक अल्पकालिक मेमोरी क्षेत्र होता है जिसे वे अक्सर स्कैन करते हैं, और एक माध्यमिक मेमोरी क्षेत्र जिसे वे कम बार स्कैन करते हैं। मोनो इसे नर्सरी कहते हैं।
यह पता लगाने के लिए कि किन वस्तुओं को निपटाया जा सकता है, वे सभी वस्तुओं को जड़ों, स्टैक और रजिस्टरों से स्कैन करते हैं और उन सभी वस्तुओं का निपटान करते हैं जिन्हें अब संदर्भित नहीं किया जा रहा है।
मेरा सवाल यह है कि वे सभी मेमोरी को हर कलेक्ट पर स्कैन करने से कैसे रोकें? सिद्धांत रूप में, यह पता लगाने का एकमात्र तरीका है कि क्या वस्तुएं अब उपयोग में नहीं हैं, सभी वस्तुओं और उनके सभी संदर्भों को स्कैन करना है। हालाँकि, यह OS को मेमोरी को स्वैप करने से रोकता है, भले ही यह एप्लिकेशन द्वारा उपयोग में न हो और काम की एक बड़ी मात्रा की तरह महसूस करता है, जिसे "नर्सरी कलेक्शन" के लिए भी आवश्यक है। यह महसूस नहीं होता है कि वे नर्सरी का उपयोग करके बहुत अधिक जीत रहे हैं।
क्या मुझे कुछ याद आ रहा है या कचरा संग्रहकर्ता वास्तव में हर वस्तु और हर सन्दर्भ को स्कैन कर रहा है जब भी यह एक संग्रह करता है?