कॉम्पैक्ट फ्रेमवर्क पर विकास करते समय आपकी सभी यादों को ढूंढने का सबसे अच्छा तरीका क्या है?

मैंने सीएफ रिमोट प्रदर्शन मॉनीटर का उपयोग किया है, हालांकि यह अप्रबंधित दुनिया के विरोध में प्रबंधित दुनिया में शुरू की गई स्मृति को ट्रैक करता है। खैर, मैं केवल यह मान सकता हूं क्योंकि प्रोफाइलर में सूचीबद्ध संख्या अधिकतम अनुमत (सीई 5 पर 32 एमबी) से कम है। आरपीएम के साथ एक विशेष ऐप को प्रोफाइल करने से मुझे पता चला कि सभी कैशों का कुल उपयोग केवल 12 एमबी तक पहुंचने का प्रबंधन करता है और फिर धीरे-धीरे घटता है (मुझे लगता है) कुछ अप्रबंधित प्रारंभिक स्मृति का दावा करने के लिए शुरू होता है। सिस्टम में मेमोरी स्लाइडर यह भी दिखाता है कि डिवाइस मेमोरी पर बहुत छोटा है। अगर मैं प्रक्रिया को मारता हूं तो स्लाइडर सभी मेमोरी को वापस दिखाता है। तो यह इस प्रबंधित प्रक्रिया को (?) होना चाहिए जो स्मृति को निगल रहा है।

क्या कोई सरल (आईएसएच?) फैशन है कि कोई भी अप्रबंधित मेमोरी उपयोग को किसी तरह से कैसे ट्रैक कर सकता है जो मुझे संबंधित पी/इनवॉक कॉल के साथ मेल करने में सक्षम बनाता है?

EDIT: To all you re-taggers it isn't .NET, tagging the question like this confuses things. It's .NETCF/Compact Framework. I know they appear to be similar but they're different because .NET rocks whereas CF is basically just a wrapper around NotImplementedException.

0
ro fr bn
".NET चट्टानों जबकि सीएफ मूल रूप से NotImplementedException के आसपास एक रैपर है।" मुझे वह उद्धरण पसंद है!
जोड़ा लेखक Stormenet, स्रोत

3 उत्तर

इंटरऑप लॉगिंग सक्षम करने का प्रयास करें।

Also, if you have access to the code of the native dll you are using, check this out: http://msdn.microsoft.com/en-us/netframework/bb630228.aspx

0
जोड़ा
मुझे पता है कि यह पुरानी पोस्ट है लेकिन उम्मीद है कि आप इसे देखेंगे और जवाब देंगे। दूसरा लिंक msdn.microsoft.com/en-us/vstudio/aa496123</पर जाता है ए> जो दृश्य स्टूडियो के लिए एक शीर्ष-स्तरीय साइट प्रतीत होता है। क्या आपको याद है कि आपने क्या जुड़ा था?
जोड़ा लेखक Miserable Variable, स्रोत

मैं निश्चित रूप से कुछ समय के लिए सी # प्रबंधित ऐप में अप्रबंधित मुद्दों से लड़ रहा हूं - यह आसान नहीं है।

जो मैंने सबसे उपयोगी पाया है वह टेक्स्ट लॉग फ़ाइल में नियमित आउटपुट रखना है। उदाहरण के लिए आप प्रत्येक दो मिनट के साथ GlobalMemoryStatus के आउटपुट को प्रिंट कर सकते हैं प्रत्येक बार जब आप एक नया फॉर्म लोड करते हैं तो लॉगिंग के साथ। वहां से आप कम से कम देख सकते हैं कि या तो स्मृति धीरे-धीरे खराब हो जाती है, या दिन के विशिष्ट समय पर स्मृति का एक बड़ा हिस्सा गायब हो जाता है।

हमारे लिए, जब तक डिवाइस का उपयोग किया जा रहा था, तब तक हमें पूरे दिन धीरे-धीरे स्मृति हानि मिली। वहां से हमने अंततः पाया कि बारकोड स्कैनिंग डिवाइस को हमारे फॉर्म बेस क्लास में किसी विशेष कारण के लिए शुरू नहीं किया जा रहा था (मैं पिछले डेवलपर को दोष देता हूं! :-)

इस लॉगिंग को सेट करना एक छोटी सी परेशानी हो सकती है, लेकिन हमारे लिए लंबे समय तक भारी लाभांश का भुगतान किया जाता है, विशेष रूप से लाइव उपयोग में डिवाइस के साथ हम वास्तविक डेटा, उपकरण, अपवादों से स्टैक निशान आदि प्राप्त कर सकते हैं।

0
जोड़ा

ठीक है, मैं सीई पर सी ++ का उपयोग कर रहा हूं, सी # नहीं, इसलिए यह सहायक नहीं हो सकता है, लेकिन ...

मैं Entrk टूलबॉक्स नामक पैकेज का उपयोग करता हूं जो स्मृति और संसाधन उपयोग, लीक और अपवादों की निगरानी करता है विंडोज सीई के तहत। बाउंडशेकर के हल्के सीई संस्करण की तरह बहुत अधिक। चाल सबसे अधिक समय है।

0
जोड़ा