में स्मृति विखंडन का कारण बनता है मैं एक स्मृति रिसाव डीबग करने के लिए लाल गेट्स एएनटीएस मेमोरी प्रोफाइलर का उपयोग कर रहा हूं। यह मुझे चेतावनी रहता है कि:.NET
मेमोरी विखंडन नेट बहुत अधिक मुक्त स्मृति संचयकर्ता के कारण हो सकता है।
या
मेमोरी विखंडन सबसे बड़ा उद्देश्य यह है कि
क्योंकि मैं ओसीडी है आवंटित किया जा सकता है के आकार को प्रभावित कर रहा है, इस समस्या का समाधान किया जाना चाहिए।
कुछ मानक कोडिंग प्रथाएं क्या हैं जो स्मृति विखंडन से बचने में मदद करती हैं। क्या आप इसे कुछ .NET तरीकों से डिफ्रैगमेंट कर सकते हैं? क्या यह भी मदद करेगा?
में अधिक जानकारी देखें यह इस है एप्लिकेशन किस तरह के बारे में कुछ जानकारी है मदद मिलेगी। मेमोरी विखंडन तब होगा जब आप मेमोरी पिन कर रहे हैं (या I/O फ़ंक्शंस का उपयोग करते हुए जो दृश्यों के पीछे I/O बफर पिन करते हैं), मूल आवंटकों (जैसे COM कार्य आवंटक) से आवंटन, या बहुत सारी बड़ी वस्तुएं बनाते हैं, क्योंकि LOH संकुचित नहीं होता है। .NET कचरा कलेक्टर पहले से ही पीढ़ी के गतिशील आवंटन को कॉम्पैक्ट करता है, जिसका मुक्त स्थान डीफ्रैगमेंटिंग का दुष्प्रभाव होता है। यदि ऐसा नहीं हो रहा है, तो ऐसा इसलिए है क्योंकि कुछ वस्तुओं को स्थानांतरित होने से रोक रहा है। –
* क्योंकि मेरे पास ओसीडी है, इस समस्या को हल किया जाना चाहिए। * + 1 इस टिप्पणी के लिए अकेले - मुझे वास्तव में प्रश्न पसंद है हालांकि – BrokenGlass
अनइंस्टॉल करने वाले टूल जो आपको कुचलना चाहते हैं लेकिन समस्या का निदान करने में कोई सहायता नहीं देते हैं।मेमोरी विखंडन जीवन का एक तथ्य है, ऐसा कुछ भी नहीं है जिसे आप इसे रोकने के लिए कर सकते हैं जो बहुत ही अप्रत्याशित नहीं होगा। कम विखंडन हीप आवंटक Vista और ऊपर के लिए पहले से ही डिफ़ॉल्ट है। यह केवल एक समस्या है यदि आप उपलब्ध पता स्थान के आधे से अधिक आवंटित करते हैं, तो सूअर उड़ते नहीं हैं। –