स्मृति चक्र
प्रोग्रामिंग भाषा के बावजूद, किसी भी प्रोग्रामिंग भाषा के लिए स्मृति चक्र लगभग समान होता है।
स्मृति जीवन चक्र में 3 चरण होते हैं
1) स्मृति का आवंटन ।
2) आवंटित मेमोरी (पढ़ने या लिखने) का उपयोग करें
3) आवंटित स्मृति को अनावश्यक होने पर छोड़ दें।
पहले और आखिरी हिस्से सीधे निम्न-स्तरीय भाषाओं में जुड़े हुए हैं लेकिन परोक्ष रूप से उच्च-स्तरीय भाषाओं जैसे कि जावास्क्रिप्ट में जुड़े हुए हैं।
1) जावास्क्रिप्ट में मेमोरी का आवंटन
जावास्क्रिप्ट को कचरा एकत्रित भाषा कहा जाता है, यानी जब चर घोषित किए जाते हैं, तो यह स्वचालित रूप से उन्हें स्मृति आवंटित करेगा। जब घोषित चर के लिए कोई और संदर्भ नहीं है, तो आवंटित स्मृति जारी की जाएगी।
उदाहरण
निम्नलिखित उदाहरण में जावास्क्रिप्ट एक संख्या, एक स्ट्रिंग और एक वस्तु के लिए स्मृति आवंटित करता है।
<पूर्व>वर n =989; // एक नंबरवर s ='qwerty' के लिए मेमोरी आवंटित करता है; // एक stringvar o ={a:1, b:null} के लिए मेमोरी आवंटित करता है; // किसी वस्तु और निहित मूल्यों के लिए स्मृति आवंटित करता है2) आवंटित मानों का उपयोग करना
मूल्यों का उपयोग मूल रूप से आवंटित स्मृति में पढ़ना और लिखना है। यह एक चर या वस्तु संपत्ति के मूल्य को पढ़ने या लिखने या किसी फ़ंक्शन के लिए तर्क पारित करके भी किया जा सकता है।
3) आवंटित स्मृति को अनावश्यक होने पर छोड़ दें
स्मृति प्रबंधन के अधिकांश मुद्दे इस चरण में आएंगे। यहां सबसे कठिन कार्य यह पता लगाना है कि आवंटित स्मृति की अब आवश्यकता नहीं है। इस समस्या को हल करने के लिए अधिकांश उच्च स्तरीय भाषाएं कचरा संग्रहकर्ता नामक सॉफ़्टवेयर का एक टुकड़ा एम्बेड करती हैं।
कचरा संग्रहकर्ता का कार्य स्मृति आवंटन को ट्रैक करना है और यह पता लगाना है कि आवंटित स्मृति की अब आवश्यकता नहीं है ताकि इसे जारी किया जा सके। दुर्भाग्य से यह प्रक्रिया केवल एक अनुमान है क्योंकि यह जानने की सामान्य समस्या है कि स्मृति के कुछ टुकड़े की आवश्यकता है या नहीं। (एल्गोरिदम ट्रेस नहीं कर सकता)
जावास्क्रिप्ट कचरा संग्रहकर्ता कुछ एल्गोरिदम का उपयोग करता है जैसे कि संदर्भ-गणना कचरा संग्रह स्मृति का पता लगाने के लिए जो अब उपयोग में नहीं है।