Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Javascript

जावास्क्रिप्ट में कचरा संग्रह (जीसी)?

<घंटा/>

कचरा संग्रहण (GC) स्वचालित मेमोरी प्रबंधन का एक रूप है। कचरा संग्रहकर्ता, या सिर्फ संग्राहक, कचरा, या उन वस्तुओं द्वारा कब्जा की गई स्मृति को पुनः प्राप्त करने का प्रयास करता है जो अब प्रोग्राम द्वारा उपयोग में नहीं हैं। स्वचालित रूप से यह पता लगाने की सामान्य समस्या कि क्या कुछ मेमोरी "अब और आवश्यक नहीं है" अनिर्णीत है। एक परिणाम के रूप में, कचरा संग्रहकर्ता सामान्य समस्या के समाधान के प्रतिबंध को लागू करते हैं।

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

उदाहरण

let a = []
function addToA() {
   let x = {name: "John"}
   a.push(x)
}
console.log(a[0])

आउटपुट

{name: "John"}

ध्यान दें कि x अब दायरे में नहीं है लेकिन a का उपयोग करके अभी भी पहुंच योग्य है। इसका मतलब यह है कि इसे तब तक स्मृति में रहने की जरूरत है जब तक कि इसका संदर्भ अब और न हो। यदि हम इसे सरणी से पॉप करते हैं, तो इसकी अब और आवश्यकता नहीं होगी और इसे कचरा एकत्र किया जा सकता है।

कचरा संग्रहकर्ता निम्नलिखित एल्गोरिदम का उपयोग करके काम करते हैं -

<मजबूत>1. संदर्भ-गणना कचरा संग्रहण - एक वस्तु को "कचरा" कहा जाता है, या संग्रहणीय कहा जाता है यदि शून्य संदर्भ इसकी ओर इशारा करते हैं। इसका उपयोग पुराने ब्राउज़र में किया जाता है। लेकिन यह परिपत्र संदर्भित वस्तुओं के साथ एक समस्या का कारण बनता है क्योंकि उन्हें एकत्र नहीं किया जा सकता है (हमेशा दूसरी वस्तु से उनका संदर्भ होता है।)

<मजबूत>2. मार्क-एंड-स्वीप एल्गोरिथम - यह एल्गोरिथम "ऑब्जेक्ट की अब आवश्यकता नहीं है" की परिभाषा को "ऑब्जेक्ट अगम्य है" को कम कर देता है। यह एल्गोरिथ्म जड़ नामक वस्तुओं के एक समूह के ज्ञान को ग्रहण करता है। जावास्क्रिप्ट में, जड़ वैश्विक वस्तु है। समय-समय पर, जीसी इन जड़ों से शुरू होता है, इन जड़ों से संदर्भित सभी वस्तुओं को पुनरावर्ती रूप से खोजें। जड़ों से शुरू होकर, जीसी इस प्रकार सभी पहुंच योग्य वस्तुओं को ढूंढेगा और सभी गैर-पहुंच योग्य वस्तुओं को एकत्र करेगा।

आप जावास्क्रिप्ट में जीसी के बारे में अधिक पढ़ सकते हैं https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_Management


  1. जावास्क्रिप्ट में ब्लॉब वस्तु

    ब्लॉब ऑब्जेक्ट का उपयोग ब्लॉब ऑब्जेक्ट का प्रतिनिधित्व करने के लिए किया जाता है जो अपरिवर्तनीय है और कच्चे डेटा का प्रतिनिधित्व करने के लिए उपयोग किया जाता है। ब्लॉब का आकार और माइम प्रकार की संपत्ति ठीक वैसे ही होती है जैसे फ़ाइल में होती है। फ़ाइल बूँद की व्युत्पत्ति है और ब्लॉब का उपयोग उन जगहों

  1. जावास्क्रिप्ट में RegExp ऑब्जेक्ट।

    RegExp ऑब्जेक्ट का उपयोग टेक्स्ट के भाग को खोजकर और निकालकर कुछ टेक्स्ट से मेल खाने वाले पैटर्न के लिए किया जाता है। RegExp ऑब्जेक्ट को या तो regexp कंस्ट्रक्टर या शाब्दिक सिंटैक्स का उपयोग करके बनाया जा सकता है। जावास्क्रिप्ट में RegExp ऑब्जेक्ट के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html&

  1. जावास्क्रिप्ट में ऑब्जेक्ट प्रारंभकर्ता

    ऑब्जेक्ट इनिशियलाइज़र एक एक्सप्रेशन है जो हमें एक नई बनाई गई ऑब्जेक्ट को इनिशियलाइज़ करने की अनुमति देता है। यह संपत्ति के नामों के शून्य या अधिक जोड़े और घुंघराले ब्रेसिज़ की एक जोड़ी में संलग्न किसी वस्तु के संबंधित मूल्यों की अल्पविराम से अलग सूची है {}। जावास्क्रिप्ट में ऑब्जेक्ट इनिशियलाइज़र क