كيفية قياس وقت تنفيذ method في C#؟ Stopwatch وطرق أخرى
مرحباً بالجميع! أنا مطور C# مبتدئ وواجهت مشكلة: أحتاج لقياس وقت تنفيذ method معين في تطبيقي بدقة. مثلاً، أكتب parser لملف كبير أو أقوم بحسابات رياضية معقدة، وأريد معرفة أي جزء من الكود يعمل ببطء.
حالياً أفعل هكذا:
```csharp
DateTime start = DateTime.Now;
// الـ method الخاص بي
Thread.Sleep(1000); // محاكاة للعمل
DateTime end = DateTime.Now;
TimeSpan duration = end - start;
Console.WriteLine($"الوقت: {duration.TotalMilliseconds} مللي ثانية");
```
لكن لاحظت أن النتائج تتذبذب أحياناً: تارة 1000 مللي ثانية، وتارة 1002 مللي ثانية، وتارة 998 مللي ثانية. كما سمعت أن DateTime.Now ليس دقيقاً جداً لمثل هذه القياسات.
أرجو إرشادي كيف أقيس وقت تنفيذ method بشكل صحيح؟ هل يجب مراعاة بعض الخصائص، مثلاً إذا كان الـ method يعمل بسرعة كبيرة (أقل من مللي ثانية) أو بالعكس لفترة طويلة (دقائق)؟ هل هناك أدوات مدمجة في .NET لهذا؟ وكيف أتجنب تأثير القياس نفسه على النتيجة؟
سأكون ممتناً.