Comment mesurer le temps d'exécution d'une méthode en C# ? Stopwatch et autres méthodes
Bonjour à tous ! Je suis un développeur C# débutant et j'ai rencontré un problème : je dois mesurer précisément combien de temps prend une méthode spécifique dans mon application. Par exemple, j'écris un parser pour un gros fichier ou j'effectue des calculs mathématiques complexes, et je veux comprendre quelle partie du code est lente.
Actuellement, je fais ceci :
```csharp
DateTime start = DateTime.Now;
// ma méthode
Thread.Sleep(1000); // simulation de travail
DateTime end = DateTime.Now;
TimeSpan duration = end - start;
Console.WriteLine($"Temps : {duration.TotalMilliseconds} ms");
```
Mais j'ai remarqué que les résultats sautent parfois : tantôt 1000 ms, tantôt 1002 ms, tantôt 998 ms. J'ai aussi entendu dire que DateTime.Now n'est pas très précis pour ce genre de mesures.
Pouvez-vous me dire comment mesurer correctement le temps d'exécution d'une méthode ? Dois-je prendre en compte certaines particularités, par exemple si la méthode s'exécute très rapidement (moins d'une milliseconde) ou au contraire longtemps (minutes) ? Existe-t-il des outils intégrés dans .NET pour cela ? Et comment éviter que la mesure elle-même n'affecte le résultat ?