"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > संदर्भ गिनती बनाम कचरा संग्रहण का पता लगाना

संदर्भ गिनती बनाम कचरा संग्रहण का पता लगाना

2024-11-08 को प्रकाशित
ब्राउज़ करें:653

Reference Counting vs Tracing Garbage Collection

हैलो, मेंटेस टेक!

क्या आप जानते हैं कि मेमोरी डीलोकेशन के संदर्भ में संदर्भ गणना और संदर्भ ट्रैकिंग क्या हैं?

संदर्भ ट्रैकिंग (या कचरा संग्रह का पता लगाना) और संदर्भ गिनती (संदर्भ गिनती) के बीच का अंतर उस दृष्टिकोण में निहित है जो प्रत्येक तकनीक ऑब्जेक्ट मेमोरी को पहचानने और मुक्त करने के लिए उपयोग करती है जो कि नहीं हैं लंबे समय तक उपयोग में रहता है।
मैं प्रत्येक को समझाऊंगा और फिर मुख्य अंतरों पर प्रकाश डालूंगा।

संदर्भ गणना (संदर्भ गणना)

  • यह कैसे काम करता है: मेमोरी में प्रत्येक ऑब्जेक्ट में एक काउंटर होता है जो ट्रैक करता है कि कितने संदर्भ (या पॉइंटर्स) इसे इंगित करते हैं। जब ऑब्जेक्ट के लिए एक नया संदर्भ बनाया जाता है, तो काउंटर बढ़ जाता है। जब कोई संदर्भ हटा दिया जाता है, तो काउंटर कम हो जाता है। यदि काउंटर शून्य पर पहुंच जाता है, तो इसका मतलब है कि ऑब्जेक्ट अब पहुंच योग्य नहीं है और उसे मुक्त किया जा सकता है (इसकी मेमोरी को ध्वस्त किया जा सकता है)।

  • फायदे:

    • समझने और लागू करने में सरल।
    • काउंटर शून्य पर पहुंचने पर तुरंत मेमोरी एकत्र करता है, जिससे उपयोग की जाने वाली मेमोरी की मात्रा कम हो सकती है।
  • नुकसान:

    • संदर्भ चक्र: यदि दो या दो से अधिक वस्तुएं एक चक्र में एक-दूसरे को संदर्भित करती हैं, तो उनकी संदर्भ गणना कभी भी शून्य तक नहीं पहुंचती है, जिससे मेमोरी लीक होती है।
    • कम कुशल हो सकता है क्योंकि प्रत्येक संदर्भ निर्माण या निष्कासन के लिए काउंटर अपडेट की आवश्यकता होती है, जिसका प्रदर्शन पर प्रभाव पड़ सकता है।

संदर्भ अनुरेखण (कचरा संग्रहण का पता लगाना)

  • यह कैसे काम करता है: इस दृष्टिकोण में दो मुख्य चरण शामिल हैं: चिह्नित करना और स्कैन। सबसे पहले, कचरा संग्रहकर्ता जड़ों से शुरू होता है (जैसे वैश्विक चर, स्थानीय चर और रजिस्टर) और स्मृति में वस्तुओं के सभी संदर्भों को ट्रैक करता है, जो पहुंच योग्य हैं उन्हें चिह्नित करता है। इसके बाद यह उन (मुक्त) वस्तुओं को इकट्ठा करने के लिए मेमोरी को स्कैन करता है जिन्हें चिह्नित नहीं किया गया है, क्योंकि ये अब पहुंच योग्य नहीं हैं।

  • फायदे:

    • संदर्भ चक्र समस्याओं से ग्रस्त नहीं है, क्योंकि कचरा संग्रहकर्ता उन वस्तुओं की पहचान करने में सक्षम है जो चक्रों की परवाह किए बिना अब पहुंच योग्य नहीं हैं।
    • कुछ प्रकार के अनुप्रयोगों के लिए रनटाइम के संदर्भ में अधिक कुशल हो सकता है, विशेष रूप से जटिल मेमोरी प्रबंधन वाली भाषाओं में।
  • नुकसान:

    • प्रोग्राम निष्पादन में रुकावटें ला सकता है, हालांकि गो जैसे आधुनिक कचरा संग्रहकर्ता इन रुकावटों को कम करने के लिए डिज़ाइन किए गए हैं।
    • आम तौर पर, ट्रैकिंग प्रक्रिया संदर्भ गणना की तुलना में अधिक जटिल और संसाधन-गहन हो सकती है, यह इस पर निर्भर करता है कि कचरा संग्रहकर्ता को कैसे कार्यान्वित किया जाता है।

मुख्य अंतर

  1. साइकिल प्रबंधन:

    • संदर्भ गणना: संदर्भ चक्र के साथ समस्याएं, जहां दो या दो से अधिक ऑब्जेक्ट एक-दूसरे को संदर्भित करते हैं, जिसके परिणामस्वरूप मेमोरी लीक होती है।
    • ट्रैकिंग: साइकिल के साथ कोई समस्या नहीं है, क्योंकि कलेक्टर सभी पहुंच योग्य वस्तुओं को ट्रैक और चिह्नित करता है।
  2. जटिलता और प्रदर्शन:

    • संदर्भ गिनती: सरल, लेकिन प्रत्येक वृद्धि और कमी ऑपरेशन प्रदर्शन को प्रभावित कर सकता है, खासकर उन कार्यक्रमों में जो पॉइंटर्स के साथ कई ऑपरेशन करते हैं।
    • ट्रेसिंग: अधिक जटिल और प्रोग्राम निष्पादन में रुकावट पैदा कर सकता है, लेकिन आम तौर पर विभिन्न मेमोरी उपयोग पैटर्न से निपटने में अधिक कुशल है।
  3. संग्रह समय:

    • संदर्भ गणना: गिनती शून्य पर पहुंचने पर तुरंत मेमोरी एकत्र करता है।
    • ट्रैकिंग: जब कचरा संग्रहकर्ता अपना चक्र चलाता है, तो समय-समय पर मेमोरी एकत्र करता है।
  4. कार्यान्वयन:

    • संदर्भ गणना: लागू करने में आसान, लेकिन जटिल अनुप्रयोगों में कम मजबूत।
    • ट्रैकिंग: अधिक मजबूत, लेकिन कचरा संग्रहकर्ता को लागू करना काफी जटिल हो सकता है।

संक्षेप में, संदर्भ गणना सरल और अधिक तत्काल है, लेकिन कुछ परिदृश्यों (जैसे संदर्भ चक्र) में विफल हो सकती है, जबकि ट्रैकिंग अधिक मजबूत और लचीली है, लेकिन इसकी जटिलता के कारण प्रदर्शन पर अधिक प्रभाव पड़ सकता है कार्यान्वयन।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/devxbr/reference-counting-vs-tracing-garbage-collection-51ac?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3