Recursive एल्गोरिदम आमतौर पर जटिल समस्याओं को हल करने के लिए एम्बेडेड सिस्टम में उपयोग किया जाता है। प्रदर्शन को अनुकूलित करने और सिस्टम स्थिरता सुनिश्चित करने के लिए उनके मेमोरी उपयोग को समझना आवश्यक है। यह लेख बताता है कि एम्बेडेड वातावरण के भीतर पुन: प्रयोज्य कार्यों में स्मृति खपत की गणना कैसे की जाए।

Recursive Function Memory Components

पुनरावर्ती एल्गोरिदम में मेमोरी उपयोग में मुख्य रूप से दो घटक शामिल हैं: स्टैक मेमोरी और डेटा मेमोरी। स्टैक प्रत्येक सक्रिय फ़ंक्शन कॉल के बारे में जानकारी संग्रहीत करता है, जिसमें स्थानीय चर और रिटर्न पते शामिल हैं। डेटा मेमोरी प्रोग्राम द्वारा उपयोग किए जाने वाले स्थैतिक और वैश्विक चर रखती है।

स्टैक मेमोरी उपयोग की गणना

एक आवर्ती समारोह द्वारा उपयोग की जाने वाली कुल स्टैक मेमोरी, पुनरावृत्ति की अधिकतम गहराई और प्रत्येक फ़ंक्शन कॉल के स्टैक फ्रेम के आकार पर निर्भर करती है। सूत्र है:

]मैक्सिमम स्टैक उपयोग = अधिकतम पुनरावृत्ति गहराई × प्रत्येक स्टैक फ्रेम का आकार

प्रत्येक स्टैक फ्रेम के आकार को निर्धारित करने के लिए, स्थानीय चर, सहेजे गए रजिस्टरों और रिटर्न पते पर विचार करें। एम्बेडेड सिस्टम में अक्सर सीमित स्टैक स्पेस होता है, इसलिए इसे सही ढंग से अनुमान लगाना महत्वपूर्ण है।

डेटा मेमोरी उपयोग का आकलन

डेटा मेमोरी खपत स्थिर और वैश्विक चर पर निर्भर करती है जो पूरे आवर्ती प्रक्रिया में उपयोग की जाती है। ये चर एक बार आवंटित किए जाते हैं और कार्यक्रम की अवधि के लिए बने रहते हैं। इस तरह के सभी चरों का योग होता है।

प्रैक्टिकल गणना उदाहरण

मान लीजिए कि एक आवर्ती समारोह में अधिकतम 10 कॉल हैं, और प्रत्येक कॉल का स्टैक फ्रेम 64 बाइट्स है। कुल स्टैक मेमोरी का उपयोग किया जाता है:

]10 × 64 बाइट्स = 640 बाइट्स ]

यदि कार्य वैश्विक चर के 200 बाइट्स का उपयोग करता है, तो कुल मेमोरी का उपयोग स्टैक और डेटा मेमोरी को जोड़ती है, जो संसाधन की खपत का व्यापक दृष्टिकोण प्रदान करती है।