¿Cómo medir el tiempo de ejecución de un método en C#? Stopwatch y otras formas
¡Hola a todos! Soy un desarrollador principiante de C# y me encontré con la siguiente tarea: necesito medir con precisión cuánto tiempo tarda un método específico en mi aplicación. Por ejemplo, estoy escribiendo un parser de un archivo grande o realizando cálculos matemáticos complejos, y quiero entender qué parte del código funciona lentamente.
Actualmente hago esto:
```csharp
DateTime start = DateTime.Now;
// mi método
Thread.Sleep(1000); // simulación de trabajo
DateTime end = DateTime.Now;
TimeSpan duration = end - start;
Console.WriteLine($"Tiempo: {duration.TotalMilliseconds} ms");
```
Pero noté que los resultados a veces varían: a veces 1000 ms, a veces 1002 ms, a veces 998 ms. También escuché que DateTime.Now no es muy preciso para este tipo de mediciones.
Indíquenme cómo medir correctamente el tiempo de ejecución de un método. ¿Es necesario tener en cuenta algunas características, por ejemplo, si el método funciona muy rápido (menos de un milisegundo) o, por el contrario, durante mucho tiempo (minutos)? ¿Existen herramientas integradas en .NET para esto? ¿Y cómo evitar la influencia de la propia medición en el resultado?