पायथन में स्मृति प्रबंधन(Python Memory Management)
C या C ++ में, प्रोग्रामर को रनटाइम के दौरान, डायनामिक रूप से मेमोरी आवंटित करना और deallocate करना (या फ्री) करना चाहिए। उदाहरण के लिए, मेमोरी आवंटित करने के लिए, प्रोग्रामर malloc () फ़ंक्शन का उपयोग कर सकता है और मेमोरी को डीलॉलेट करने के लिए, वह free () फ़ंक्शन का उपयोग कर सकता है। लेकीन मे पायथन, मेमोरी एलोकेशन और डीललोकेशन स्वचालित रूप से रनटाइम के दौरान किए जाते हैं। ऑब्जेक्ट को बनाते समय प्रोग्रामर को मेमोरी आवंटित करने की आवश्यकता नहीं होती है या ऑब्जेक्ट डिलीट करते समय मेमोरी को डिलीट करने की आवश्यकता नहीं होती है। पायथन के PVM ऐसे issue का ध्यान रखता है।
सब कुछ पायथन में एक वस्तु के रूप में माना जाता है। उदाहरण के लिए, स्ट्रिंग्स ऑब्जेक्ट हैं। सूची वस्तु है। कार्य वस्तुएं हैं। यहां तक कि मॉड्यूल भी ऑब्जेक्ट हैं। प्रत्येक वस्तु के लिए, स्मृति को आवंटित किया जाना चाहिए। पीवीएम के अंदर मेमोरी मैनेजर एक पायथन प्रोग्राम में बनाई गई वस्तुओं के लिए आवश्यक मेमोरी आवंटित करता है। इन सभी वस्तुओं को एक अलग मेमोरी पर संग्रहीत किया जाता है जिसे heap कहा जाता है। Heap वह मेमोरी है जो रनटाइम के दौरान आवंटित की जाती है। ढेर मेमोरी का आकार हमारे कंप्यूटर के रैंडम एक्सेस मेमोरी (RAM) पर निर्भर करता है और यह कार्यक्रम की आवश्यकता के आधार पर इसके आकार को बढ़ा या घटा सकता है।
हम जानते हैं कि किसी भी प्रोग्राम के लिए वास्तविक मेमोरी (RAM) underlying ऑपरेटिंग सिस्टम द्वारा आवंटित की जाती है। ऑपरेटिंग सिस्टम के शीर्ष पर, एक raw मेमोरी एलोकेटर ओवरसिट करता है कि क्या ऑब्जेक्ट को स्टोर करने के लिए पर्याप्त मेमोरी उपलब्ध है। कच्चे मेमोरी एलोकेटर के शीर्ष पर, एक ही heap पर कई ऑब्जेक्ट-विशिष्ट एलोकेटर संचालित होते हैं। ये मेमोरी एलोकेटर विभिन्न प्रकार की मेमोरी मैनेजमेंट नीतियों को वस्तुओं के प्रकार के आधार पर लागू करेंगे। उदाहरण के लिए, एक पूर्णांक संख्या को एक तरह से मेमोरी में संग्रहीत किया जाना चाहिए और एक स्ट्रिंग को एक अलग तरीके से संग्रहीत किया जाना चाहिए। इसी तरह, जब हम टुपल्स और शब्दकोशों के साथ व्यवहार करते हैं, तो उन्हें अलग तरीके से संग्रहीत किया जाना चाहिए। ये मुद्दे हैं
ऑब्जेक्ट-विशिष्ट मेमोरी आवंटनकर्ताओं द्वारा ध्यान रखा गया। चित्र में पायथन की वर्चुअल मशीन द्वारा मेमोरी का आवंटन दिखाया गया है: