डीबगिंग उद्देश्यों के लिए, मैं इस छोटे से स्थिर विधि लिखा है:एप्लिकेशन मेमोरी उपयोग की निगरानी करने का सही तरीका क्या है?
public static long CheckMemory(long maxMemorySizeBytes)
{
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
var usedMemoryBytes = Process.GetCurrentProcess().VirtualMemorySize64;
if (usedMemoryBytes > maxMemorySizeBytes)
Debugger.Break();
return usedMemoryBytes;
}
किसी कारण से, VirtualMemorySize64
बहुत सारे क्या दृश्य स्टूडियो निदान के औजार विंडो दिखाया जा रहा है, साथ ही क्या कार्य प्रबंधक दिखा रहा है और अधिक से अधिक स्मृति लौटने रहता है ।
- निदान के औजार: ~ 250 एमबी
- कार्य प्रबंधक: ~ 120 एमबी
- VirtualMemorySize64: विशिष्ट उदाहरण मैं अब चल रहा हूँ के लिए, यहाँ नंबर दिए गए हैं ~ 1100 एमबी
ऐसे बड़े मतभेद क्यों हैं और मैं ऐप के भीतर से मेमोरी उपयोग को सही तरीके से कैसे ट्रैक करूं?
उत्कृष्ट उत्तर, बहुत बहुत धन्यवाद। सी # विशेष रूप से रुचि रखने वाले लोगों के लिए एक संदर्भ के रूप में: ** निजी बाइट ** 'प्रक्रिया है। निजी मेमरी साइज 64' और ** कार्य सेट **' प्रक्रिया है। कार्यप्रणालीसेट 64 '। –