2008-09-09 24 views
8

मैं रन-टाइम पर निर्धारित करने का एक तरीका खोजने का प्रयास कर रहा हूं कि .NET में दी गई कक्षा कितनी मेमोरी का उपयोग कर रही है। Marshal.SizeOf() का उपयोग करना बाहर है, क्योंकि यह केवल मूल्य प्रकारों पर काम करता है। क्या यह जांचने का एक तरीका है कि कक्षा कितनी मेमोरी का उपयोग करती है?निर्धारित करें कि कक्षा कितनी मेमोरी का उपयोग करती है?

उत्तर

5

मैंने हाल ही में इस प्रकार की चीज़ों को देखना शुरू कर दिया है, लेकिन मुझे पता चला है कि मेमोरी प्रोफाइलर आपके आवेदन के भीतर वस्तुओं के उदाहरणों के बारे में काफी विस्तृत जानकारी दे सकते हैं।

यहां कुछ है कि कोशिश कर रहा लायक हैं:

1

मैं मानता हूँ कि एक स्मृति प्रोफाइलर सबसे आसान तरीका जानकारी आप देख रहे हैं पाने के लिए है। पहले उल्लेखित दो के अलावा, मैं जेटब्रेन dotTrace की सिफारिश करता हूं, जो एक प्रदर्शन प्रोफाइलर और मेमोरी प्रोफाइलर दोनों है।

यदि आप इसे स्वयं करना चाहते हैं, और सीएलआर की गड़बड़ी में बहुत गहराई से तैयार होने के इच्छुक हैं, तो आप .NET Profiling API का उपयोग कर सकते हैं, जो एक अप्रबंधित एपीआई है (जैसा कि माइक्रोसॉफ्ट कहता है): "एक प्रोफाइलर को मॉनिटर करने में सक्षम बनाता है सामान्य भाषा रनटाइम (सीएलआर) द्वारा एक कार्यक्रम का निष्पादन। " यह वास्तव में आकस्मिक उपयोग के लिए नहीं है, लेकिन इसमें कार्यक्षमता की एक बड़ी मात्रा है।

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