¿Cuál es la mejor manera de medir el tiempo de ejecución de una función? [duplicar]
-
22-08-2019 - |
Pregunta
Esta pregunta ya tiene una respuesta aquí:
Es evidente que puedo hacer y DateTime.Now.After
-. DateTime.Now.Before
pero tiene que haber algo más sofisticado
¿Algún consejo apreciado.
Solución
System.Environment.TickCount y la System.Diagnostics.Stopwatch clase son dos que trabajan bien para una resolución más fina y uso sencillo.
Ver también:
Otros consejos
Yo definitivamente le aconsejaría a echar un vistazo a System.Diagnostics.Stopwatch
Y cuando miré a mi alrededor para más información sobre Cronómetro encontré este sitio;
Hay otra posibilidad mencionado
Process.TotalProcessorTime
Utilice un generador de perfiles
Su enfoque de trabajo, sin embargo, pero si usted está buscando enfoques más sofisticados. Me gustaría sugerir el uso de un C # Profiler .
Las ventajas que tienen es:
- Usted puede incluso conseguir un nivel de sentencia ruptura
- No se requieren cambios en su base de código
- Instrumentions generalmente tienen muy menos sobrecarga, por lo tanto, resultados muy precisos puede ser obtenido.
Hay muchos disponibles de código abierto también.
Tickcount es bueno, sin embargo te sugiero que correr 100 o 1000 veces, y calcular un promedio. No sólo hace que sea más medible -. En el caso de funciones muy rápido / corto, pero ayuda a hacer frente a algunos efectos puntuales ocasionados por la sobrecarga