ए स्मृति रिसाव दोषपूर्ण स्मृति आवंटन के कारण कंप्यूटर प्रोग्राम में संसाधन का गलत स्थान है। ऐसा तब होता है जब उपयोग में नहीं होने वाला रैम स्थान निरंतर रहता है। एक स्मृति रिसाव को एक अंतरिक्ष रिसाव के साथ भ्रमित नहीं किया जाना चाहिए, जो आवश्यक से अधिक रैम का उपयोग कर एक कार्यक्रम को संदर्भित करता है। कहा जाता है कि विंडोज 10/8/7 सिस्टम पर एक मेमोरी रिसाव तब हुआ जब स्मृति उपयोग में नहीं होने के बावजूद पहुंच योग्य नहीं है।
विंडोज 10 में मेमोरी लीक
शुरू करने से पहले, आपको पता होना चाहिए कि मेमोरी लीक डीबग करने के लिए एक सॉफ़्टवेयर समस्या है - उदाहरण के लिए जावा, जावास्क्रिप्ट, सी / सी ++, विंडोज़ आदि में भौतिक रूप से रैम या हार्ड डिस्क की जगह आवश्यक नहीं है।
यह बुरा क्यों है
यह स्पष्ट है कि एक स्मृति रिसाव खराब है क्योंकि यह एक बग है, सिस्टम में एक दोष है। लेकिन आइए जानें कि यह सिस्टम को वास्तव में कैसे प्रभावित करता है:
- चूंकि स्मृति उपयोग में नहीं होने पर भी मुक्त नहीं होती है, इसके परिणामस्वरूप स्मृति में कमी आती है।
- सॉफ़्टवेयर उम्र बढ़ने में स्मृति परिणामों का थकावट।
- कम उपलब्ध स्मृति में सिस्टम द्वारा प्रतिक्रिया समय और खराब प्रदर्शन में वृद्धि हुई है।
- अनचेक मेमोरी रिसाव अंततः एक आवेदन के दुर्घटना का कारण बन सकता है।
मेमोरी लीक की पहचान करने के लिए, प्रोग्रामर को प्रोग्राम के स्रोत कोड तक पहुंच की आवश्यकता होती है।
रिसाव का पता लगाना
किसी समस्या को हल करने के लिए, हमें पहले इसकी पहचान करने की आवश्यकता है। मेमोरी रिसाव का पता लगाने के लिए बुनियादी कदम हैं:
- प्रतिज्ञान: यह निर्धारित करना कि एक रिसाव हुआ है या नहीं।
- कर्नेल-मोड मेमोरी रिसाव ढूँढना: कर्नेल-मोड ड्राइवर घटक के कारण एक रिसाव का पता लगाना।
- उपयोगकर्ता-मोड मेमोरी रिसाव ढूँढना: उपयोगकर्ता-मोड ड्राइवर या ऐप के कारण लीक का पता लगाना।
स्मृति आवंटन
ऐसे विभिन्न तरीके हैं जिनमें अनुप्रयोग रैम आवंटित करते हैं। यदि अंतरिक्ष उपयोग के बाद मुक्त नहीं किया जाता है, तो स्मृति रिसाव आवंटन के तरीके के बावजूद होगा। कुछ सामान्य आवंटन पैटर्न हैं:
- हीप स्मृति आवंटन के लिए HealAlloc समारोह। सी / सी ++ रनटाइम समकक्ष मॉलोक और नए हैं।
- ओएस से प्रत्यक्ष आवंटन के लिए वर्चुअलअलोक फ़ंक्शन।
- ऐप के लिए कर्नेल मेमोरी रखने के लिए कर्नेल 32 एपीआई। उदाहरण, CreateFile, CreateThread।
- उपयोगकर्ता 32 एपीआई और जीडीआई 32 एपीआई।
स्मृति रिसाव को रोकना
हम सभी जानते हैं कि रोकथाम इलाज से बेहतर है इसलिए स्मृति रिसाव को रोकने के कुछ तरीके यहां दिए गए हैं।
निगरानी की आदतें
आपको व्यक्तिगत कार्यक्रमों और अनुप्रयोगों द्वारा असामान्य RAM उपयोग के लिए नजर रखने की आवश्यकता है। आप दबाकर विंडोज टास्क मैनेजर पर जा सकते हैं Ctrl + SHIFT + ESC और हैंडल, उपयोगकर्ता ऑब्जेक्ट्स, जीडीआई ऑब्जेक्ट्स इत्यादि जैसे कॉलम जोड़ें।
यह आपको आसानी से संसाधन उपयोग की निगरानी करने में मदद करेगा।
मेमोरी लीक का निदान करने के लिए माइक्रोसॉफ्ट टूल्स
विभिन्न आवंटन मोड के लिए विभिन्न उपकरण मेमोरी लीक का निदान करते हैं:
- आवेदन सत्यापनकर्ता ढेर लीक का निदान करता है।
- यूएमडीएच (विंडोज डिबगिंग टूल्स का एक घटक) ढेर मेमोरी आवंटन की निगरानी करके व्यक्तिगत प्रक्रियाओं के लिए लीक का निदान करता है।
- राम उपयोग के पूर्ण विश्लेषण के लिए ट्रेस कैप्चर करें।
- Xperf भी ढेर आवंटन पैटर्न ट्रैक करता है।
- सीआरटी डीबग हीप न केवल ढेर आवंटन ट्रैक करता है बल्कि लीक को कम करने के लिए कोडिंग प्रथाओं को भी सक्षम बनाता है।
- जावास्क्रिप्ट मेमोरी लीक डिटेक्टर कोड में मेमोरी लीक डीबग करता है।
उपयोग युक्तियाँ
- कर्नेल का प्रयोग करें संभाल एस और Win32 संसाधनों और ढेर आवंटन के लिए ऐसे अन्य स्मार्ट पॉइंटर्स।
- एटीएल लाइब्रेरी से कर्नेल आवंटन के लिए स्वचालित संसाधन प्रबंधन के लिए कक्षाएं प्राप्त करें। सी ++ मानक है auto_ptr ढेर आवंटन के लिए।
- मदद के साथ "स्मार्ट पॉइंटर्स" के भीतर COM इंटरफ़ेस पॉइंटर्स को एन्सेप्लेट करें _com_ptr_t या _bstr_t या _variant_t.
- असामान्य स्मृति उपयोग के लिए.NET कोड की निगरानी करें।
- फ़ंक्शंस के अंत तक अधिकांश ब्लॉक में आवंटन को आवृत्तियों से मुक्त करने के लिए कार्यों के लिए एकाधिक निकास पथ से बचें।
- _Finally ब्लॉक में सभी आवंटन मुक्त करने के बाद ही मूल अपवादों का उपयोग करें। सी ++ अपवादों का उपयोग करने के लिए सभी ढेर लपेटें और स्मार्ट पॉइंटर्स में आवंटन को संभालें।
- हमेशा कॉल करें PropVariantClear एक प्रदाता वस्तु को पुन: प्रारंभ करने या हटाने से पहले कार्य करें।
विंडोज़ में मेमोरी लीक की समस्या निवारण
मेमोरी लीक को रोकने के विभिन्न तरीकों की तरह, मेमोरी लीक को रोकने के कई तरीके हैं।
1] प्रक्रिया बंद करें और पुनरारंभ करें।
यदि आपको एक अनावश्यक प्रक्रिया बहुत अधिक रैम ले रही है, तो आप कार्य प्रबंधक में प्रक्रिया को समाप्त कर सकते हैं। आपको डिवाइस को पुनरारंभ करने की आवश्यकता होगी ताकि मुक्त प्रक्रिया अन्य प्रक्रियाओं के उपयोग के लिए उपलब्ध हो। रीस्टार्ट मेमोरी लीक इश्यू के बिना हल नहीं किया जाएगा। एक विशेष प्रक्रिया जिसमें पीसी को धीमा करने के लिए बग्स हैं, रनटाइम ब्रोकर है। कोशिश करें कि अकेले काम करने में अक्षम है या नहीं।
2] मेमोरी डायग्नोस्टिक टूल्स
- अपने सभी महत्वपूर्ण कामों को बचाओ।
- दबाएँ विन + आर खोलने के लिए रन खिड़की।
- आदेश टाइप करें mdsched.exe में रन खिड़की।
- पीसी को पुनरारंभ करें।
- पुनरारंभ करने के बाद, एक मूल स्कैन करें या ' उन्नत'विकल्प जैसे' टेस्ट मिश्रण'या' पास गिनती ’.
- दबाएँ F10 परीक्षण शुरू करने के लिए।
ये अभी भी अस्थायी सुधार हैं।
3] चालक अद्यतन के लिए जाँच करें
- दबाएँ विन + आर और खोलो रन खिड़की। प्रकार devmgmt.msc और एंटर दबाएं। यह आपको ले जाएगा डिवाइस मैनेजर.
- पुराने ड्राइवरों की जांच करें और उन्हें सभी अपडेट करें।
- उन अपडेट्स के लिए जिन्हें आप याद कर चुके हैं, विंडोज अपडेट में जांचें।
यह आसान था।
4] प्रदर्शन अनुकूलित करें
- राइट-क्लिक करें ' यह पीसी'और चुनें' उन्नत'बाएं फलक पर सेटिंग्स।
- के नीचे ' उन्नत'टैब, जाओ' प्रदर्शन', के बाद ' सेटिंग्स ’.
- चेक ' बेहतर कार्य - निष्पादन के लिए समायोजन'और क्लिक करें ठीक.
- पुनरारंभ करें और जांचें कि समस्या हल हो गई है या नहीं।
यदि यह सरल समाधान काम नहीं करता है, तो अगला समाधान आज़माएं।
5] स्टार्टअप पर चल रहे प्रोग्राम अक्षम करें
- के लिए जाओ ' कार्य प्रबंधक ’.
- के लिए जाओ ' चालू होना ’.
- स्टार्टअप प्रोग्राम को अक्षम करें जिन्हें आपको डिफ़ॉल्ट रूप से चलाने की आवश्यकता नहीं है।
6] Defrag हार्ड ड्राइव
- के लिए जाओ ' यह पीसी'या' मेरा कंप्यूटर ’.
- सिस्टम हार्ड ड्राइव पर राइट-क्लिक करें (आमतौर पर सी: ड्राइव)।
- के लिए जाओ ' उपकरण' के अंतर्गत ' गुण'और चुनें' का अनुकूलन ’.
- डिफ्रैग करने के लिए ड्राइव का चयन करें और ' का विश्लेषण करें ’.
नए विखंडन के बाद अपने कंप्यूटर को पुनरारंभ करें।
7] शटडाउन पर ClearPage फ़ाइल
यह अब जटिल हो रहा है - लेकिन चिंता मत करो। यहां प्रत्येक शटडाउन पर पृष्ठ फ़ाइल को साफ़ करने का तरीका बताया गया है:
- प्रकार regedit रजिस्ट्री संपादक लॉन्च करने के लिए खोज पर।
- इस पथ को दर्ज करें: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControl सत्र प्रबंधक स्मृति प्रबंधन
- का मूल्य बदलें ClearPageFileAtShutDown '1' पर चला गया।
- परिवर्तनों को सहेजें और डिवाइस को पुनरारंभ करें।
यह करना चाहिए।
9] Superfetch अक्षम करें
यह विंडोज सेवा बूट समय को कम करके प्रदर्शन को अनुकूलित करती है। यह विंडोज़ रैम उपयोग को प्रबंधित करने देता है। सुपरफैच को अक्षम करने के बाद जीवन सुविधाजनक नहीं है लेकिन अगर आपको यह करना है तो इसे करें। कम से कम समस्या को अलग करने के लिए इसे अकेले आज़माएं:
- खोज services.msc और सेवा प्रबंधक के पास जाओ।
- ढूंढें ' SuperFetch'और इसे जाने के लिए राइट-क्लिक करें' गुण ’.
- चुनते हैं ' रुकें ’.
- इसके अलावा ' अक्षम'ड्रॉप-डाउन मेनू से सेवा।
- पीसी को पुनरारंभ करें और जांचें कि प्रदर्शन में सुधार हुआ है या नहीं।
अगर यह काम नहीं करता है तो सुपरफैच सक्षम करें।
10] मैलवेयर के लिए जाँच करें
मैलवेयर स्कैन और खत्म करने के लिए किसी तृतीय-पक्ष एंटीवायरस सॉफ़्टवेयर या Windows 10 के इन-हाउस विंडोज डिफेंडर का उपयोग करें। सुनिश्चित करें कि एंटीवायरस आपके ओएस का समर्थन करने के लिए अद्यतन किया गया है ताकि यह स्मृति रिसाव का कारण बनने के लिए समाप्त न हो।
मेमोरी लीक को खोजने या रोकने के लिए आपको हर समाधान की आवश्यकता हो सकती है। आप एमएसडीएन और माइक्रोसॉफ्ट पर मेमोरी लीक के बारे में अधिक पढ़ सकते हैं।
संबंधित पोस्ट:
- विंडोज स्टॉप त्रुटियों या मौत की नीली स्क्रीन को ठीक करें
- विंडोज़ स्थापित से कम रैम क्यों दिखाता है?
- विंडोज 10 स्टार्ट, रन, शट डाउन फास्ट करें
- विंडोज 10/8/7 के लिए क्रैश डंप फ़ाइलों में भौतिक मेमोरी सीमाएं
- विंडोज 10 में मेमोरी संपीड़न