ما هي أفضل طريقة لقياس وقت تنفيذ الوظيفة؟[ينسخ]
-
22-08-2019 - |
سؤال
هذا السؤال لديه بالفعل إجابة هنا:
من الواضح أنني أستطيع أن أفعل و DateTime.Now.After
- DateTime.Now.Before
ولكن يجب أن يكون هناك شيء أكثر تعقيدا.
أي نصائح موضع تقدير.
المحلول
System.Environment.TickCount و ال System.Diagnostics.Stopwatch الفصلان يعملان بشكل جيد للحصول على دقة أفضل واستخدام مباشر.
أنظر أيضا:
نصائح أخرى
بالتأكيد أنصحك بإلقاء نظرة System.Diagnostics.Stopwatch
وعندما بحثت حولي لمعرفة المزيد عن ساعة الإيقاف وجدت هذا الموقع؛
وذكر هناك احتمالا آخر
Process.TotalProcessorTime
استخدم ملف التعريف
ومع ذلك، فإن النهج الخاص بك سوف ينجح، ولكن إذا كنت تبحث عن أساليب أكثر تطوراً.أقترح استخدام أ ملف تعريف C#.
المزايا التي لديهم هي:
- يمكنك حتى الحصول على تفكك مستوى البيان
- لا توجد تغييرات مطلوبة في قاعدة التعليمات البرمجية الخاصة بك
- عادةً ما يكون للأجهزة حمل أقل جدًا، وبالتالي يمكن الحصول على نتائج دقيقة جدًا.
هناك الكثير المتاحة مفتوح المصدر أيضًا.
يعد عدد التذاكر أمرًا جيدًا، لكنني أقترح تشغيله 100 أو 1000 مرة وحساب المتوسط.لا يجعلها أكثر قابلية للقياس فحسب - في حالة الوظائف السريعة/القصيرة حقًا، ولكنها تساعد في التعامل مع بعض التأثيرات لمرة واحدة الناتجة عن النفقات العامة.