أفضل طريقة لتعقب تسرب الذاكرة (C#) الذي يظهر فقط على صندوق عميل واحد
-
02-07-2019 - |
سؤال
ما هي أفضل طريقة لتعقب تسرب الذاكرة الذي لا يوجد إلا في صندوق الاختبار/الإصدار الخاص بعميل واحد، وليس في أي مكان آخر؟
المحلول
(هذا السؤال مضحك نوعًا ما، لأنني أتتبع تسربًا للذاكرة غير موجود على جهازي ...)
نصائح أخرى
جرب ملف تعريف الذاكرة مثل ملف تعريف النمل.
إذا كان المستخدم يواجه المشكلة باستمرار، فقم بإجراء تفريغ مكدس وتحليله بالطريقة القياسية
إنه إما رمز أو بيانات أو تكوين.
نظرًا لأنك تقول أن الكود ليس معيبًا بنسبة 100% في كثير من الأحيان، فأنا ألقي اللوم على التكوين.خذ نسخة من التكوين (وبعض البيانات بشكل اختياري) وحاول تكرار المشكلة؛لن تعرف أنك عثرت عليه وأصلحته بدون إعادة الإنتاج.
وأخيرًا، قم بحلها باستخدام ملف تعريف الذاكرة.
إليك خيارًا:أعطهم صندوقًا لا يوجد فيه التسرب.
في بعض الأحيان، لا يكون هذا هو الرمز.
يحرر:إنه إما الكود أو البيانات أو التكوين.
أو .NET Framework، أو نظام التشغيل، أو برامج التشغيل، أو IIS، أو COM (أتمتة Excel، على سبيل المثال)، أو ما إلى ذلك.
افتراضي هو أن تسرب الذاكرة غير قابل للتكرار إلا في صندوق العميل (الذي لا يمكن السماح للمطور بالوصول إليه لتصحيح الأخطاء).
يمكن أن يكون PerfMon مفيدًا (http://dotnetdebug.net/2005/06/30/perfmon-your-debugging-buddy/).هناك العديد من العدادات التي قد تساعد في تضييق نطاق المورد الذي يتسرب، وبأي معدل، وما إلى ذلك.