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

JavaScript में गार्बेज कलेक्शन (GC) क्या है?


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

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

उदाहरण

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

आउटपुट

{name: "John"}

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

गार्बेज कलेक्टर्स निम्न एल्गोरिदम का उपयोग करके काम करते हैं:

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

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

आप JavaScript में GC के बारे में यहां अधिक पढ़ सकते हैं।

  1. JavaScript में Blob ऑब्जेक्ट JavaScript में Blob ऑब्जेक्ट

    Blob ऑब्जेक्ट एक अपरिवर्तनीय (immutable) ऑब्जेक्ट को दर्शाता है जिसका उपयोग कच्चे डेटा (raw data) को प्रस्तुत करने के लिए किया जाता है। Blob में size और mime type प्रॉपर्टी होती हैं, ठीक वैसे ही जैसे किसी फाइल में होती हैं। File, Blob से व्युत्पन्न (derived) है और Blob का उपयोग उन स्थानों पर किया जा

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

    RegExp ऑब्जेक्ट का उपयोग टेक्स्ट में पैटर्न मिलान, खोज और टेक्स्ट के भाग को निकालने के लिए किया जाता है। RegExp ऑब्जेक्ट को या तो RegExp कंस्ट्रक्टर या लिटरल सिंटैक्स का उपयोग करके बनाया जा सकता है। जावास्क्रिप्ट में RegExp ऑब्जेक्ट के लिए निम्नलिखित कोड है: उदाहरण <!DOCTYPE html> <html la

  1. जावास्क्रिप्ट में ऑब्जेक्ट इनिशियलाइज़र जावास्क्रिप्ट में ऑब्जेक्ट इनिशियलाइज़र

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