أفضل طريقة لتعقب تسرب الذاكرة (C#) الذي يظهر فقط على صندوق عميل واحد

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

سؤال

ما هي أفضل طريقة لتعقب تسرب الذاكرة الذي لا يوجد إلا في صندوق الاختبار/الإصدار الخاص بعميل واحد، وليس في أي مكان آخر؟

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

المحلول

dotTrace3.1

(هذا السؤال مضحك نوعًا ما، لأنني أتتبع تسربًا للذاكرة غير موجود على جهازي ...)

نصائح أخرى

جرب ملف تعريف الذاكرة مثل ملف تعريف النمل.

إذا كان المستخدم يواجه المشكلة باستمرار، فقم بإجراء تفريغ مكدس وتحليله بالطريقة القياسية

إنه إما رمز أو بيانات أو تكوين.

نظرًا لأنك تقول أن الكود ليس معيبًا بنسبة 100% في كثير من الأحيان، فأنا ألقي اللوم على التكوين.خذ نسخة من التكوين (وبعض البيانات بشكل اختياري) وحاول تكرار المشكلة؛لن تعرف أنك عثرت عليه وأصلحته بدون إعادة الإنتاج.

وأخيرًا، قم بحلها باستخدام ملف تعريف الذاكرة.

إليك خيارًا:أعطهم صندوقًا لا يوجد فيه التسرب.

في بعض الأحيان، لا يكون هذا هو الرمز.

يحرر:إنه إما الكود أو البيانات أو التكوين.

أو .NET Framework، أو نظام التشغيل، أو برامج التشغيل، أو IIS، أو COM (أتمتة Excel، على سبيل المثال)، أو ما إلى ذلك.

افتراضي هو أن تسرب الذاكرة غير قابل للتكرار إلا في صندوق العميل (الذي لا يمكن السماح للمطور بالوصول إليه لتصحيح الأخطاء).

يمكن أن يكون PerfMon مفيدًا (http://dotnetdebug.net/2005/06/30/perfmon-your-debugging-buddy/).هناك العديد من العدادات التي قد تساعد في تضييق نطاق المورد الذي يتسرب، وبأي معدل، وما إلى ذلك.

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