एक मेमोरी लीक दोषपूर्ण स्मृति आवंटन के कारण कंप्यूटर प्रोग्राम में संसाधनों का गलत स्थान है। यह तब होता है जब कोई RAM लोकेशन जो उपयोग में नहीं होती है वह रिलीज़ नहीं होती है। मेमोरी लीक को स्पेस लीक के साथ भ्रमित नहीं होना चाहिए, जो एक प्रोग्राम को आवश्यकता से अधिक रैम का उपयोग करने के लिए संदर्भित करता है। कहा जाता है कि विंडोज 11/10/8/7 सिस्टम पर एक मेमोरी लीक तब हुई जब मेमोरी उपयोग में नहीं होने के बावजूद बस पहुंच योग्य नहीं है।
Windows 11/10 में मेमोरी लीक
शुरू करने से पहले, आपको पता होना चाहिए कि मेमोरी लीक डीबग करने के लिए एक सॉफ़्टवेयर समस्या है - उदाहरण के लिए जावा, जावास्क्रिप्ट, सी/सी++, विंडोज़ आदि में। रैम या हार्ड डिस्क को भौतिक रूप से बदलने की आवश्यकता नहीं है।
यह खराब क्यों है
यह स्पष्ट है कि स्मृति रिसाव खराब है क्योंकि यह एक बग है, सिस्टम में एक दोष है। लेकिन आइए जानें कि यह वास्तव में सिस्टम को कैसे प्रभावित करता है:
- चूंकि स्मृति उपयोग में न होने पर भी मुक्त नहीं होती है, इसके परिणामस्वरूप स्मृति क्षीण हो जाती है।
- स्मृति के समाप्त होने के परिणामस्वरूप सॉफ़्टवेयर की उम्र बढ़ जाती है।
- कम उपलब्ध मेमोरी के कारण प्रतिक्रिया समय बढ़ जाता है और सिस्टम खराब प्रदर्शन करता है।
- अनचेक मेमोरी लीक अंततः एप्लिकेशन के क्रैश होने का कारण बन सकता है।
मेमोरी लीक की पहचान करने के लिए, प्रोग्रामर को प्रोग्राम के सोर्स कोड तक पहुंच की आवश्यकता होती है।
रिसाव का पता लगाना
किसी समस्या को हल करने के लिए, हमें पहले उसे पहचानना होगा। स्मृति रिसाव का पता लगाने के लिए बुनियादी कदम हैं:
- पुष्टि :यह निर्धारित करना कि क्या कोई रिसाव हुआ है।
- कर्नेल-मोड मेमोरी लीक ढूँढना :कर्नेल-मोड ड्राइवर घटक के कारण रिसाव का पता लगाना।
- उपयोगकर्ता-मोड स्मृति रिसाव ढूँढना :उपयोगकर्ता-मोड ड्राइवर या ऐप के कारण लीक का पता लगाना।
स्मृति आवंटन
ऐसे विभिन्न तरीके हैं जिनमें एप्लिकेशन रैम आवंटित करते हैं। यदि उपयोग के बाद स्थान खाली नहीं किया जाता है, तो आवंटन के तरीके के बावजूद स्मृति रिसाव होगा। कुछ सामान्य आवंटन पैटर्न हैं:
- हीलअलोक हीप मेमोरी आवंटन के लिए कार्य करता है। C/C++ रनटाइम समकक्ष मॉलोक और नए हैं।
- VirtualAlloc OS से सीधे आवंटन के लिए कार्य करता है।
- कर्नेल32 एपीआई ऐप के लिए कर्नेल मेमोरी को होल्ड करने के लिए। उदाहरण, CreateFile, CreateThread.
- User32 API और Gdi32 APIs.
Windows में मेमोरी लीक होने से रोकें
हम सभी जानते हैं कि रोकथाम इलाज से बेहतर है इसलिए स्मृति रिसाव को रोकने के कुछ तरीके यहां दिए गए हैं।
निगरानी की आदतें
आपको अलग-अलग प्रोग्राम और एप्लिकेशन द्वारा असामान्य RAM उपयोग पर नज़र रखने की आवश्यकता है। आप CTRL+SHIFT+ESC pressing दबाकर विंडोज टास्क मैनेजर पर जा सकते हैं और हैंडल, उपयोगकर्ता ऑब्जेक्ट, GDI ऑब्जेक्ट आदि जैसे कॉलम जोड़ें।
इससे आपको संसाधन उपयोग पर आसानी से नज़र रखने में मदद मिलेगी।
पढ़ें :कंप्यूटर में मेमोरी कितने प्रकार की होती है?
मेमोरी लीक के निदान के लिए Microsoft टूल
विभिन्न उपकरण विभिन्न आवंटन मोड के लिए मेमोरी लीक का निदान करते हैं:
- एप्लिकेशन सत्यापनकर्ता हीप लीक का निदान करता है।
- यूएमडीएच (विंडोज डिबगिंग टूल्स का एक घटक) हीप मेमोरी आवंटन की निगरानी करके व्यक्तिगत प्रक्रियाओं के लिए लीक का निदान करता है।
- रैम उपयोग के गहन विश्लेषण के लिए ट्रेस कैप्चर।
- Xperf भी ढेर आवंटन पैटर्न को ट्रैक करता है।
- CRT डीबग हीप न केवल हीप आवंटन को ट्रैक करता है बल्कि लीक को कम करने के लिए कोडिंग प्रथाओं को भी सक्षम बनाता है।
- जावास्क्रिप्ट मेमोरी लीक डिटेक्टर कोड में मेमोरी लीक को डीबग करता है।
उपयोग युक्तियाँ
- कर्नेल का उपयोग करें हैंडल करें Win32 संसाधनों और ढेर आवंटन के लिए s और अन्य स्मार्ट पॉइंटर्स।
- एटीएल लाइब्रेरी से कर्नेल आवंटन के लिए स्वचालित संसाधन प्रबंधन के लिए कक्षाएं प्राप्त करें। C++ मानक में auto_ptr . है ढेर आवंटन के लिए।
- _com_ptr_t की सहायता से "स्मार्ट पॉइंटर्स" के भीतर COM इंटरफ़ेस पॉइंटर्स को इनकैप्सुलेट करें या _bstr_t या _variant_t ।
- असामान्य स्मृति उपयोग के लिए .NET कोड की निगरानी करें।
- फ़ंक्शन के अंत तक अधिकांश ब्लॉकों में आवंटन को चर से मुक्त करने के लिए कार्यों के लिए कई निकास पथों से बचें।
- _अंतिम रूप से ब्लॉक में सभी आवंटन को मुक्त करने के बाद ही मूल अपवादों का उपयोग करें। C++ अपवादों का उपयोग करने के लिए सभी ढेर को लपेटें और आवंटन को स्मार्ट पॉइंटर्स में संभालें।
- हमेशा PropVariantClear पर कॉल करें PROPVARIANT ऑब्जेक्ट को फिर से शुरू करने या छोड़ने से पहले कार्य करें।
Windows में मेमोरी लीक का निवारण करें
मेमोरी लीक को रोकने के विभिन्न तरीकों की तरह, मेमोरी लीक को रोकने के कई तरीके हैं। लेकिन इससे पहले कि आप शुरू करें, पहले सिस्टम पुनर्स्थापना बिंदु बनाना याद रखें।
1] प्रक्रियाओं को बंद करें और पुनरारंभ करें।
यदि आप देखते हैं कि एक अनावश्यक प्रक्रिया बहुत अधिक RAM ले रही है, तो आप कार्य प्रबंधक में प्रक्रिया को समाप्त कर सकते हैं। आपको डिवाइस को पुनरारंभ करने की आवश्यकता होगी ताकि खाली स्थान अन्य प्रक्रियाओं द्वारा उपयोग के लिए उपलब्ध हो। रीस्टार्ट मेमोरी लीक के बिना समस्या हल नहीं होगी। एक विशेष प्रक्रिया जिसमें पीसी को धीमा करने के लिए बग हैं, वह है रनटाइम ब्रोकर। कोशिश करें कि क्या इसे अक्षम करना अकेले काम करता है।
2] मेमोरी डायग्नोस्टिक टूल
विंडोज के लिए इनबिल्ट मेमोरी डायग्नोस्टिक टूल तक पहुंचने के लिए:
- अपने सभी महत्वपूर्ण कार्य सहेजें।
- प्रेस विन + आर चलाएं . खोलने के लिए खिड़की।
- आदेश टाइप करें mdsched.exe दौड़ . में खिड़की।
- पीसी को पुनरारंभ करें।
- फिर से शुरू करने के बाद, एक बुनियादी स्कैन करें या 'उन्नत . के लिए जाएं 'टेस्ट मिक्स . जैसे विकल्प ' या 'पास गिनती '.
- प्रेस F10 परीक्षण शुरू करने के लिए।
ये अभी भी अस्थायी सुधार हैं।
3] ड्राइवर अपडेट की जांच करें
पुराने ड्राइवर मेमोरी लीक का कारण बनते हैं। सभी ड्राइवरों को अपडेट रखें:
- प्रेस विन + आर और चलाएं . खोलें खिड़की। टाइप करें devmgmt.msc और एंटर दबाएं। यह आपको डिवाइस मैनेजर पर ले जाएगा ।
- पुराने ड्राइवरों की जांच करें और उन सभी को अपडेट करें।
- अपडेट के लिए, आप चूक गए होंगे, विंडोज अपडेट में चेक इन करें।
यह आसान था।
4] प्रदर्शन अनुकूलित करें
प्रदर्शन के लिए विंडोज़ को समायोजित करने से मेमोरी लीक को रोकने के लिए प्रोसेसर शेड्यूलिंग और मेमोरी उपयोग सहित सब कुछ प्रबंधित हो जाएगा। इन चरणों का पालन करें:
- ‘यह पीसी पर राइट-क्लिक करें ' और 'उन्नत . चुनें ' बाएँ फलक पर सेटिंग।
- ‘उन्नत . के तहत ' टैब, 'प्रदर्शन . पर जाएं ', उसके बाद 'सेटिंग '.
- चेक करें 'सर्वश्रेष्ठ प्रदर्शन के लिए समायोजित करें ' और ठीक . क्लिक करें ।
- पुनरारंभ करें और जांचें कि क्या समस्या हल हो गई है।
यदि यह सरल समाधान काम नहीं करता है, तो अगला समाधान आज़माएं।
5] स्टार्टअप पर चलने वाले प्रोग्राम अक्षम करें
मेमोरी लीक की समस्या से छुटकारा पाने का एकमात्र तरीका परेशानी वाले कार्यक्रमों को अक्षम करना है। टास्क मैनेजर पर जाएं और ट्रबलमेकिंग प्रोग्राम को डिसेबल कर दें। यदि आप नहीं जानते कि कौन से प्रोग्राम समस्या पैदा कर रहे हैं, तो यह करें:
- ‘कार्य प्रबंधक पर जाएं '.
- ‘स्टार्टअप पर जाएं '.
- उन स्टार्टअप प्रोग्रामों को अक्षम करें जिन्हें आपको डिफ़ॉल्ट रूप से चलाने की आवश्यकता नहीं है।
6] हार्ड ड्राइव को डीफ़्रैग करें
हालांकि विंडोज 10 यह आपके लिए स्वचालित रूप से करता है, आपको प्रदर्शन को अनुकूलित करने के लिए कभी-कभी हार्ड ड्राइव को डीफ़्रैग्मेन्ट करने की आवश्यकता हो सकती है:
- ‘इस पीसी पर जाएं ' या 'मेरा कंप्यूटर '.
- सिस्टम हार्ड ड्राइव (आमतौर पर C:ड्राइव) पर राइट-क्लिक करें।
- ‘टूल पर जाएं 'गुणों . के अंतर्गत ' और 'अनुकूलित करें . चुनें '.
- डीफ़्रैग करने के लिए ड्राइव का चयन करें और 'विश्लेषण करें . चुनें '.
नए फ़्रेग्मेंटेशन के बाद अपने कंप्यूटर को पुनरारंभ करें।
7] शटडाउन के समय क्लियरपेज फाइल
यह अब जटिल होता जा रहा है - लेकिन चिंता न करें। प्रत्येक शटडाउन पर पेज फ़ाइल को साफ़ करने का तरीका यहां दिया गया है:
- टाइप करें regedit रजिस्ट्री संपादक को लॉन्च करने के लिए खोज पर।
- यह पथ दर्ज करें:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management
- ClearPageFileAtShutDown के मान को '1' में बदलें।
- परिवर्तन सहेजें और डिवाइस को पुनरारंभ करें।
यह करना चाहिए। याद रखें कि आपकी शटडाउन प्रक्रिया में थोड़ा अधिक समय लगेगा।
9] सुपरफच अक्षम करें
यह विंडोज सेवा बूट समय को कम करके प्रदर्शन को अनुकूलित करती है। यह विंडोज़ को रैम के उपयोग को प्रबंधित करने देता है। सुपरफच को अक्षम करने के बाद का जीवन सुविधाजनक नहीं है, लेकिन यदि आवश्यक हो तो इसे करें। समस्या को अलग करने के लिए कम से कम इसे अकेले आज़माएं:
- खोजें services.msc और सेवा प्रबंधक पर जाएँ।
- 'सुपरफच को देखें ' और 'गुणों . पर जाने के लिए उस पर राइट-क्लिक करें '.
- 'रोकें . चुनें '.
- इसके अलावा 'अक्षम करें ड्रॉप-डाउन मेनू से सेवा।
- पीसी को पुनरारंभ करें और जांचें कि क्या प्रदर्शन में सुधार हुआ है।
अगर यह काम नहीं करता है तो सुपरफच सक्षम करें।
10] मैलवेयर की जांच करें
मैलवेयर को स्कैन और समाप्त करने के लिए किसी तृतीय-पक्ष एंटीवायरस सॉफ़्टवेयर या Windows 10 के इन-हाउस Windows डिफ़ेंडर का उपयोग करें। सुनिश्चित करें कि आपके ओएस को सपोर्ट करने के लिए एंटीवायरस अपडेट किया गया है ताकि यह मेमोरी लीक का कारण न बने।
मेमोरी लीक को खोजने या रोकने के लिए आपको कभी भी हर समाधान की आवश्यकता हो सकती है। आप MSDN और Microsoft पर मेमोरी लीक के बारे में अधिक पढ़ सकते हैं।