2008-09-13 20 views
13

क्या किसी को यह पता लगाने का तरीका पता है कि किसी वस्तु का एक उदाहरण कितना स्मृति ले रहा है?पता लगाएं कि सी # में किसी ऑब्जेक्ट द्वारा कितनी मेमोरी का उपयोग किया जा रहा है?

उदाहरण के लिए, अगर मैं निम्नलिखित वस्तु का एक उदाहरण है:

TestClass tc = new TestClass();

क्या यह पता लगाने का कोई तरीका है कि उदाहरण tc कितना मेमोरी ले रहा है?

पूछने का कारण यह है कि हालांकि सी # ने स्मृति प्रबंधन में बनाया है, मैं अक्सर किसी ऑब्जेक्ट के उदाहरण को साफ़ नहीं करने के साथ मुद्दों में भाग लेता हूं (उदाहरण के लिए एक सूची जो किसी चीज़ का ट्रैक रखती है)।

कुछ उचित मेमोरी प्रोफाइलर्स (उदा। एएनटीएस प्रोफाइलर) हैं लेकिन बहु-थ्रेडेड वातावरण में यह पता लगाने में काफी मुश्किल है कि यहां तक ​​कि उन उपकरणों के साथ क्या है।

उत्तर

2

मेरे पास MemProfiler के साथ अच्छे अनुभव हैं। यह आपको ऑब्जेक्ट बनाया गया था और ऑब्जेक्ट अभी भी कचरा नहीं एकत्र करने के सभी ग्राफ के निशान का निशान देता है।

7

यदि आप इसे कोड में स्वयं करने की कोशिश नहीं कर रहे हैं, जिसे मैं आपके एएनटीएस संदर्भ के आधार पर मान रहा हूं, तो CLRProfiler (वर्तमान में v2.0) पर एक नज़र डालने का प्रयास करें। यह मुफ़्त है और यदि आप अपेक्षाकृत सरल यूआई को नहीं मानते हैं, तो यह मूल्यवान जानकारी प्रदान कर सकता है। यह आपको सभी प्रकार के आंकड़ों का गहराई से अवलोकन देगा। मैंने इसे थोड़ी देर पहले मेमोरी लीक खोजने के लिए एक उपकरण के रूप में इस्तेमाल किया था।

यहाँ डाउनलोड करें: http://www.microsoft.com/downloads/details.aspx?FamilyId=A362781C-3870-43BE-8926-862B40AA0CD0&displaylang=en

आप कोड में यह करने के लिए चाहते हैं, तो CLR एपीआई आप इस्तेमाल कर सकते हैं रूपरेखा गया है। अगर आपको सीएलआरप्रोफाइलर में जानकारी मिलती है, क्योंकि यह उन एपीआई का उपयोग करती है, तो आपको कोड में भी ऐसा करने में सक्षम होना चाहिए। यहाँ और जानकारी: http://msdn.microsoft.com/de-de/magazine/cc300553(en-us).aspx

(। यह WinDbg का उपयोग कर के रूप में के रूप में गुप्त नहीं है, लेकिन CLR में शक्तिशाली गहरी करने के लिए तैयार रहना)

3

CLR Profiler है, जो माइक्रोसॉफ्ट द्वारा नि: शुल्क प्रदान करते हैं पर एक बहुत अच्छा काम करता है इस तरह की चीज।

पूरे प्रोफाइलर के लिए एक परिचय here डाउनलोड किया जा सकता है। इसके अलावा पैटर्न & प्रैक्टिस टीम put something एक साथ वापस प्रोफाइलर का उपयोग करने का विवरण देने के बारे में बताते हैं।

यह उन थ्रेडों में बनाए गए विभिन्न धागे और ऑब्जेक्ट्स दिखाने पर एक उचित उचित काम करता है।

आशा है कि यह कुछ प्रकाश डालेगा। मुबारक प्रोफाइलिंग!

संबंधित मुद्दे