विषयसूची:
परिभाषा - कचरा कलेक्टर का क्या अर्थ है?
एक कचरा संग्राहक सॉफ्टवेयर का एक टुकड़ा है जो स्वचालित मेमोरी प्रबंधन करता है। इसका काम किसी भी अप्रयुक्त मेमोरी को मुक्त करना है और यह सुनिश्चित करना है कि कोई भी मेमोरी मुक्त नहीं है जबकि यह अभी भी उपयोग में है। जावा और .NET जैसी कुछ भाषाओं में स्वचालित कचरा संग्रह की सुविधा है, जबकि अन्य जैसे कि C / C ++ को प्रोग्रामर को मेमोरी प्रबंधित करने के लिए प्रोग्रामर की आवश्यकता होती है।
Techopedia में गारबेज कलेक्टर बताते हैं
कचरा संग्रह पहली बार लिस्प निर्माता जॉन मैकार्थी द्वारा पेश किया गया था जब लिस्प भाषा के साथ काम करते हुए मैनुअल मेमोरी प्रबंधन को कम करने के लिए।
स्वचालित मेमोरी प्रबंधन करने के लिए एक कचरा कलेक्टर द्वारा उपयोग की जाने वाली तीन मुख्य तकनीकें इस प्रकार हैं:
- संदर्भ गिनती - प्रत्येक वस्तु का संदर्भ एक काउंटर चर का उपयोग करके गिना जाता है। जब काउंटर शून्य पर पहुंचता है, तो यह दर्शाता है कि ऑब्जेक्ट की अब आवश्यकता नहीं है और इस प्रकार पुनर्नवीनीकरण किया जाता है।
- मार्क और स्वीप - सभी डेटा क्षेत्र पर सभी पहुंच योग्य वस्तुओं का एक पुनरावर्ती ट्रैवर्स किया जाता है, और पुन: प्राप्य वस्तुओं को चिह्नित किया जाता है। फिर चिन्हित वस्तुओं को पुनर्नवीनीकरण किया जाता है।
- स्टॉप एंड कॉपी - मेमोरी हीप को दो सेक्शन में बांटा गया है: एक सेक्शन जिसमें ऑब्जेक्ट्स होते हैं और एक खाली सेक्शन जहां ऑब्जेक्ट्स को ट्रांसफर किया जाता है (कॉपी किया जाता है) यदि चिह्नित पाया जाए। पहले खंड में अंकित वस्तुओं को खाली करके पुनर्नवीनीकरण किया जाता है।
जब एक पॉइंटर / ऑब्जेक्ट को सौंपे गए मेमोरी के ब्लॉक को मुक्त कर दिया गया है, तो पॉइंटर / ऑब्जेक्ट को एक शून्य मान पर रीसेट किया जाना चाहिए; अन्यथा, यह अमान्य मेमोरी ब्लॉक की ओर इशारा करते हुए झूल रहा है।
कचरा संग्रह, ख़तरनाक बिंदुओं और मेमोरी लीक समस्याओं के कारण बग और सुरक्षा जोखिम को कम करने में मदद करता है।
एक कचरा कलेक्टर का उपयोग करने के नुकसान में संसाधनों और प्रदर्शन पर अतिरिक्त ओवरहेड शामिल हैं। एक कचरा कलेक्टर चलाने से सिस्टम धीमा हो सकता है और इस प्रकार इसका प्रदर्शन कम हो सकता है।
