JavaScript Node.js प्रोजेक्ट पर काम करते समय एक आम समस्या "JavaScript हीप आउट ऑफ़ मेमोरी" त्रुटि है। यह त्रुटि आमतौर पर तब होती है जब आपके सिस्टम द्वारा Node.js को आवंटित डिफ़ॉल्ट मेमोरी एक बड़े प्रोजेक्ट को चलाने के लिए पर्याप्त नहीं होती है।
त्रुटि सामान्य है चाहे आप अपना प्रोजेक्ट विंडोज, मैकओएस, या उबंटू जैसे लिनक्स वितरण पर चलाएं। सौभाग्य से, कुछ आसान सुधार हैं जो "जावास्क्रिप्ट हीप आउट ऑफ़ मेमोरी" त्रुटि को हल करने में मदद कर सकते हैं।
हीप मेमोरी क्या है?
इससे पहले कि आप त्रुटि को ठीक करने पर विचार करें, यह उपयोगी है समझें कि हीप मेमोरी क्या है और प्रोग्राम इसका उपयोग कैसे करते हैं।
सिस्टम हीप पर आवंटित मेमोरी को गतिशील रूप से आवंटित मेमोरी भी कहा जाता है। उपलब्ध मेमोरी का उपयोग करने के लिए यह प्रोग्रामर पर निर्भर है क्योंकि वे फिट देखते हैं। इससे भी महत्वपूर्ण बात यह है कि किसी प्रोग्राम के लिए हीप का आकार उसे आवंटित उपलब्ध वर्चुअल मेमोरी पर निर्भर करता है।
यदि आप अपेक्षाकृत बड़ी परियोजना चला रहे हैं, तो इसके लिए डिफ़ॉल्ट आवंटित चंक की तुलना में अधिक मेमोरी की आवश्यकता हो सकती है। इससे आपका प्रोजेक्ट क्रैश हो सकता है और "जावास्क्रिप्ट हीप आउट ऑफ़ मेमोरी" त्रुटि लॉग हो सकती है।
विंडोज़ पर मेमोरी से बाहर जावास्क्रिप्ट ढेर को कैसे ठीक करें
आपकी IDE चाहे जो भी हो, "JavaScript हीप आउट ऑफ़ मेमोरी" फिक्स समान है।
तुम कर सकते हो नियंत्रण कक्ष के माध्यम से एक पर्यावरण चर जोड़ें Node.js प्रोजेक्ट को आवंटित मेमोरी को बढ़ाने के लिए।
- खोलें प्रारंभ मेनू, निम्न को खोजें उन्नत सिस्टम सेटिंग्स, और सर्वश्रेष्ठ मैच का चयन करें।
- डायलॉग बॉक्स से, पर क्लिक करें पर्यावरण चर, फिर क्लिक करें नया दोनों से सिस्टम चर या उपयोगकर्ता चर. पहला आपके कंप्यूटर पर सभी उपयोगकर्ताओं पर लागू होता है, जबकि बाद वाला केवल आपके चालू खाते को प्रभावित करता है
- में चर का नाम फील्ड एंटर NODE_OPTIONS. में परिवर्तनीय मूल्य फील्ड एंटर --मैक्स-ओल्ड-स्पेस-साइज़ = 4096. यह मान Node.js को 4GB वर्चुअल मेमोरी आवंटित करेगा। एक अलग मान सेट करने के लिए, जीबी में आवश्यक राशि को 1024 से गुणा करें (परिवर्तनीय मान एमबी में होना चाहिए)।
- पर क्लिक करें ठीक है अपने परिवर्तन सहेजने के लिए, फिर क्लिक करें आवेदन करना और अंत में क्लिक करें ठीक है एक बार और। परिवर्तनों को प्रभावी करने के लिए अपने प्रोजेक्ट को पुनरारंभ करें।
आप Windows PowerShell टर्मिनल के माध्यम से एक पर्यावरण चर भी सेट कर सकते हैं।
पावरशेल टर्मिनल लॉन्च करें, नीचे दी गई कमांड टाइप करें और एंटर दबाएं:
$env: NODE_OPTIONS="--मैक्स-ओल्ड-स्पेस-साइज़ = 4096"
यदि आप केवल अस्थायी रूप से हीप मेमोरी को बढ़ाना चाहते हैं, तो अपना प्रोजेक्ट चलाने से पहले पावरशेल टर्मिनल में निम्न कमांड चलाएँ:
समूह NODE_OPTIONS=--मैक्स-ओल्ड-स्पेस-साइज़ = 4096
एक बार जब आप इस कमांड को दर्ज कर लेते हैं, तो आप इसका उपयोग करके अपनी परियोजना को तैनात / चला सकते हैं एनपीएम रन देव या अपनी खुद की स्क्रिप्ट।
हमेशा याद रखें कि आवश्यक मेमोरी साइज MB में दर्ज करें। ऐसा नहीं करने से आपके प्रोग्राम में अनपेक्षित व्यवहार हो सकता है। यह भी महत्वपूर्ण है कि अपनी संपूर्ण उपलब्ध मेमोरी को आवंटित न करें क्योंकि यह एक महत्वपूर्ण सिस्टम विफलता का कारण बन सकता है।
MacOS और Linux पर जावास्क्रिप्ट हीप आउट ऑफ़ मेमोरी त्रुटि को कैसे ठीक करें
MacOS और Linux पर, हीप मेमोरी फ़िक्स बहुत समान है। तुम्हे करना चाहिए एक पर्यावरण चर निर्यात करें जो Node.js को आवंटित वर्चुअल मेमोरी की मात्रा निर्दिष्ट करता है।
अपने टर्मिनल में, अपना प्रोजेक्ट चलाने से पहले, निम्न कमांड दर्ज करें और एंटर दबाएं:
निर्यात करना NODE_OPTIONS=--अधिकतम-पुराना-स्थान-आकार=4096
यह Node.js के निष्पादन स्थान के लिए 4GB वर्चुअल मेमोरी आवंटित करेगा। स्मृति की भिन्न मात्रा सेट करने के लिए, प्रतिस्थापित करें 4096 एमबी में आवश्यक राशि के साथ।
प्रक्रिया को दोहराने से बचने के लिए आप उपरोक्त कमांड को अपनी कॉन्फ़िगरेशन फ़ाइल में जोड़ सकते हैं। ऐसा करने के लिए, उसी का पालन करें अपना PATH वैरिएबल सेट करने की प्रक्रिया.
जावास्क्रिप्ट हीप आउट ऑफ मेमोरी एरर से बचें
आप यह सुनिश्चित करके इस त्रुटि से बच सकते हैं कि आपका प्रोग्राम मेमोरी लीक से मुक्त है। अपने प्रोग्राम लिखते समय, विशेष रूप से निम्न-स्तरीय भाषा में, उचित स्मृति प्रबंधन महत्वपूर्ण है।
जबकि आवंटित स्मृति को बढ़ाने से समस्या अस्थायी रूप से ठीक हो जाएगी, आपको मूल कारण ढूंढना चाहिए और उसे ठीक करना चाहिए।