2008-09-29 15 views
12

मेमोरी रिसाव को ट्रैक करने का सबसे अच्छा तरीका क्या है जो केवल एक ग्राहक के परीक्षण/रिलीज बॉक्स पर पाया जाता है, और कहीं और नहीं?मेमोरी लीक (सी #) को ट्रैक करने का सबसे अच्छा तरीका केवल एक ग्राहक के बॉक्स पर दिखाई देता है

+1

डिलीकर या इसी तरह के डीबगर (vld, purify) का प्रयास करें - मदद करनी चाहिए ... – MastAvalons

+0

मैं इस मामले के लिए डिलीकर को भी सलाह देता हूं। –

उत्तर

4

dotTrace3.1

में विश्लेषण (यह सवाल थोड़े अजीब है मेरी मशीन पर ...)

0

उपयोगकर्ता लगातार समस्या यह है, तो मैं एक मेम रिसाव जो मौजूद नहीं है पर नज़र रखने कर रहा हूँ कारण है, एक stackdump लेने के लिए और मानक तरीका

0

यहां एक विकल्प है: उन्हें एक बॉक्स दें जहां रिसाव मौजूद नहीं है।

कभी-कभी, यह कोड नहीं है।

संपादित करें: यह या तो कोड, डेटा या कॉन्फ़िगरेशन है।

या .NET Framework, ओएस, ड्राइवर, आईआईएस, या COM (उदाहरण के लिए एक्सेल स्वचालित करना), या इसी तरह।

मेरी धारणा यह है कि मेमोरी लीक क्लाइंट के बॉक्स को छोड़कर पुन: उत्पन्न नहीं होती है (जिसे देव को डिबगिंग के लिए एक्सेस करने की अनुमति नहीं दी जा सकती है)।

+0

तो, क्या आपका मतलब है कि हार्डवेयर इसे वापस देने के बिना स्मृति आवंटित करता है? वाह! मैं भयभीत हूं। – xmjx

+0

हार्डवेयर स्मृति को रिसाव करने में सक्षम नहीं होना चाहिए। लेकिन खराब लिखित ड्राइवर निश्चित रूप से कर सकते हैं। –

0

यह या तो कोड, डेटा या कॉन्फ़िगरेशन है।

चूंकि आप कहते हैं कि कोड 100% दोषपूर्ण नहीं है, मैं विन्यास दोष दूंगा। कॉन्फ़िगरेशन की एक प्रति लें (और वैकल्पिक रूप से कुछ डेटा) और समस्या को दोहराने का प्रयास करें; आपको पता नहीं चलेगा कि आपने प्रजनन के बिना इसे पाया और ठीक किया है।

अंत में, इसे मेमोरी प्रोफाइलर के साथ हल करें।