2012-04-03 24 views
6

मैं वर्तमान में विंडोज 8 के लिए सी # और शार्पडीएक्स का उपयोग कर मेट्रो गेम पर काम कर रहा हूं। परियोजना अच्छी तरह से चल रही है, लेकिन हाल ही में मेमोरी लीक को ट्रैक करना शुरू करने की आवश्यकता है और मुझे सच में यकीन नहीं है कि कहां से शुरू करना है।एक प्रबंधित Win8 मेट्रो ऐप में मेमोरी लीक ढूँढना?

विजुअल स्टूडियो 11 में निर्मित मेमोरी प्रोफाइलर मेट्रो ऐप्स के लिए अभी तक काम नहीं करता है, WinDBG मेट्रो ऐप्स से कनेक्ट नहीं हो सकता है (जब तक कि मैं इसे गलत तरीके से उपयोग नहीं कर रहा हूं), और मुझे कठिन समय हो रहा है मेट्रो के लिए .NET 4.5 में प्रबंधित आवंटन को देखने के बारे में कोई जानकारी ढूंढना।

क्या किसी के पास इसका कोई अनुभव है? क्या दिखने शुरू करने के लिए कोई अच्छी जगह है? मेट्रो ऐप्स में मेमोरी लीक का पता लगाने में मदद करने के लिए किसी को उपकरण के साथ सफलता मिली है?

+0

मैं अभी तक इस पर एक टन नहीं व्यतीत करूंगा। बाधाएं अच्छी हैं कि WinRT में मेमोरी लीक है जो आरटीएम से पहले तय की जाएगी। आप अस्थायी मुद्दों के आसपास काम करने का एक गुच्छा खर्च करने जा रहे हैं। तब तक टूल सपोर्ट भी होना चाहिए। –

+1

आप ऐप सत्यापनकर्ता के माध्यम से इसे बेहतर ढंग से चलाएंगे। बाधाओं को आप एक ऐप प्राप्त कर सकते हैं जो स्टोर के माध्यम से प्रकाशित स्लिम डीएक्स का उपयोग करता है, ठीक है, स्लिम। –

+0

@ हंसपैसेंट - मैं सहमत हूं। वह यह सत्यापित करना चाहता है कि वह इसे स्टोर में प्रकाशित करने में भी सक्षम होगा, मेरी समझ यह है कि जब तक कि SharpDX केवल WinRT प्रोफ़ाइल का उपयोग नहीं करता है, इसे प्रकाशित होने की संभावना किसी के लिए पतली नहीं होती है। SharpDX के लिए प्रोजेक्ट पेज को देखते हुए वे "फीचर्स" सूची में आपको विश्वास करते हैं कि यह "मेट्रो स्टाइल" शब्द का उपयोग करके WinRT प्रोफ़ाइल का समर्थन करता है, जो माइक्रोसॉफ्ट के अपने उत्पादों से भी एक निश्चित डिजाइन शैली का मतलब है। बेशक 30 मार्च 2012 तक शार्पडीएक्स विंडोज 8 सीपी का भी समर्थन नहीं करता है। –

उत्तर

2

ऐसा लगता है कि मैं वास्तव में WinDbg का उपयोग कर सकता था, यह सिर्फ आक्रामक मोड के साथ काम नहीं कर रहा था। मेरी गलती।

1

मैं कम से कम अब मानता हूं कि मेमोरी लीक मेट्रो या शार्पडीएक्स के कारण नहीं हैं।

इस चेक आउट: Memory Leaks C#

(। या सिर्फ "सी # मेमोरी लीक के लिए" अतः खोज)

उपरोक्त लिंक/खोज प्रश्न से बटोरा चीजों की चेकलिस्ट देखना है, तो इस कदम SharpDX/मेट्रो से संबंधित कोड की जांच करने पर। जब मैं जवान था, तो मेरी माँ से सबसे अच्छा दिशानिर्देश आया: "जब आप खेल रहे हों तो अपने आप को साफ करें।" जब आप उनके साथ काम करते हैं तो ऑब्जेक्ट्स का निपटान करें, डीबी, फ़ाइल या मेमोरी स्ट्रीम को लंबे समय तक खोलने के लिए छोड़ दें, जितना आप चाहते हैं। यह कई लोगों की स्मृति रिसाव के मुद्दों का कारण है, मेरा शामिल है।

+0

मैं सामान्य संदिग्धों (धाराओं, IDisposables, घटनाओं) के साथ कुछ समय बिता रहा हूं, लेकिन मैं किसी भी उपकरण या कार्यों की तलाश में हूं जो मुझे वर्तमान में आवंटित किए गए कार्यों में अंतर्दृष्टि दे सकते हैं। यहां तक ​​कि केवल प्रबंधित आवंटन की एक सूची प्राप्त करने में सक्षम होने से भी वास्तविक समस्या क्षेत्रों को खोजने में एक बड़ी मदद मिलेगी। –

-1

मेरा सुझाव है कि आप इस http://msdn.microsoft.com/en-us/magazine/jj721593.aspx का उपयोग करें। स्मृति रिसाव के बारे में बहुत सारी व्याख्याएं हैं।

+0

केवल एक लिंक पोस्ट करने के बजाय (इसके लिए एक टिप्पणी बेहतर होगी), आपको कम से कम उस लेख में चर्चा की गई तकनीकों के कुछ हाइलाइट्स को इंगित करना चाहिए। – Tuxdude