ما هي أفضل طريقة للعثور على كل ذاكرتك عند التطوير على Compact Framework؟

StackOverflow https://stackoverflow.com/questions/10309

  •  08-06-2019
  •  | 
  •  

سؤال

لقد استخدمت CF مراقبة الأداء عن بعد, ، ولكن يبدو أن هذا يتتبع فقط الذاكرة التي تم تهيئتها في العالم المُدار بدلاً من العالم غير المُدار.حسنًا، لا يمكنني إلا أن أفترض ذلك لأن الأرقام المدرجة في ملف التعريف أقل بكثير من الحد الأقصى المسموح به (32 ميجابايت في CE 5).أظهر لي تحديد ملف تعريف تطبيق معين باستخدام RPM أن الاستخدام الإجمالي لجميع ذاكرات التخزين المؤقت لا يتمكن إلا من الوصول إلى حوالي 12 ميجابايت ثم يتقلص ببطء (على ما أظن) حيث يبدأ شيء غير مُدار في المطالبة بالمزيد من الذاكرة.يُظهر شريط تمرير الذاكرة في النظام أيضًا أن ذاكرة الجهاز قصيرة جدًا.إذا قمت بإيقاف العملية، فسيُظهر شريط التمرير عودة كل الذاكرة.لذلك يجب (؟) أن تكون هذه العملية المُدارة هي التي تبتلع الذاكرة.

هل هناك أي طريقة بسيطة (ish؟) كيف يمكن للمرء تتبع استخدام الذاكرة غير المُدارة بطريقة قد تمكنني من مطابقتها مع مكالمات P/Invine المقابلة؟

يحرر:لجميع الذين يعيدون وضع العلامات، فهو ليس .NET, ، وضع علامة على السؤال مثل هذا يربك الأمور.إنه .NETCF / إطار العمل المضغوط.أعلم أنها تبدو متشابهة ولكنها مختلفة لأن .NET rocks في حين أن CF هو في الأساس مجرد غلاف حول NotImplementedException.

هل كانت مفيدة؟

المحلول

حاول التمكين تسجيل التشغيل المتداخل.

أيضًا، إذا كان لديك حق الوصول إلى رمز ملف dll الأصلي الذي تستخدمه، فتحقق من ذلك: http://msdn.microsoft.com/en-us/netframework/bb630228.aspx

نصائح أخرى

لقد كنت بالتأكيد أعاني من مشكلات غير مُدارة في تطبيق مُدار بلغة C# لفترة من الوقت - الأمر ليس بالأمر السهل.

ما وجدته مفيدًا للغاية هو الحصول على إخراج منتظم لملف سجل نصي.على سبيل المثال، يمكنك طباعة إخراج حالة الذاكرة العالمية كل دقيقتين مع التسجيل في كل مرة تقوم فيها بتحميل نموذج جديد.من هناك يمكنك على الأقل أن ترى إما أن الذاكرة تتآكل تدريجيًا، أو أن أجزاء كبيرة من الذاكرة اختفت في أوقات محددة من اليوم.

بالنسبة لنا، وجدنا فقدانًا تدريجيًا للذاكرة طوال اليوم طوال فترة استخدام الجهاز.من هناك وجدنا أخيرًا أنه تمت تهيئة جهاز مسح الباركود دون سبب محدد في فئة النموذج الأساسية لدينا (ألقي اللوم على المطور السابق!:-)

قد يكون إعداد هذا التسجيل أمرًا بسيطًا، ولكنه بالنسبة لنا حقق أرباحًا كبيرة على المدى الطويل، خاصة مع استخدام الجهاز المباشر، حيث يمكننا الحصول على بيانات حقيقية، وأدوات، وتتبعات مكدسة من الاستثناءات، وما إلى ذلك.

حسنًا، أنا أستخدم C++ على CE، وليس C# لذا قد لا يكون هذا مفيدًا، ولكن...

أستخدم حزمة تسمى صندوق أدوات إنترك الذي يراقب استخدام الذاكرة والموارد والتسريبات والاستثناءات في نظام التشغيل Windows CE.يشبه إلى حد كبير إصدار CE خفيف الوزن من أداة فحص الحدود.هل الحيلة في معظم الأوقات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top