¿Cómo puedo saber cuánto tiempo tarda mi código C# en ejecutarse?¿Cuánto tarda mi código en ejecutarse?
Respuesta
Mira la clase Stopwatch
:
Stopwatch sw = new Stopwatch();
sw.Start();
// your code here
sw.Stop();
TimeSpan elapsedTime = sw.Elapsed;
Echa un vistazo a la clase Stopwatch.
La clase Stopwatch
ofrece sincronización de alta precisión en .NET. Es capaz de medir el tiempo con una sensibilidad de alrededor de 100 segundos de nanosegundos (fracciones de milisegundos). Para obtener la resolución exacta, lea el valor de Stopwatch.Frequency
.
var timer = System.Diagnostics.Stopwatch.StartNew();
// Run code here.
var elapsed = timer.ElapsedMilliseconds.
También asegúrese de ejecutar el código ( repetidamente tantas veces como sea posible) para obtener un mejor promedio de tiempo, así como para reducir los efectos de las fluctuaciones de la carga de la CPU.
Como han dicho otros, la clase Stopwatch
es bueno para el lado de la distribución sencilla de las cosas. Otras partes a tener en cuenta, sin embargo:
- Su código puede generar objetos que tendrán que ser basura recogida después de haber dejado el cronómetro
- el contrario su sincronización puede incluir otros objetos que se recogen la basura, incluso si no tienen nada que ver con su código
- Si inicia la temporización antes de ejecutar su método por primera vez, incluirá el tiempo JIT
- Si se toma muy poco tiempo, eso genera resultados muy impredecibles: para la evaluación comparativa Tiendo a preferir ejecutar el código por muchos segundos, a la cuenta para la aplicación de ser interrumpido por otros procesos, etc.
Si usted está interesado en la evaluación comparativa, tengo el proyecto MiniBench que debo recibir todo el año a trabajar de nuevo en algún momento - no es exactamente donde quiero que se terminar, pero es un comienzo. Hablo más sobre lo que quiero lograr con él en this blog post.
Recomiendo usar una herramienta de creación de perfiles como ANTS para probar la velocidad de su aplicación y encontrar código lento. Esto le permitirá hacer una prueba línea por línea de los tiempos de ejecución.
Si quiere algo simple, simplemente coloque un ciclo de iteración N alrededor de él y use Cronómetro (o simplemente un reloj de pulsera) y divida por N. Por ejemplo, si quiere microsegundos, deje N = 1000000. Si está preocupado sobre la sobrecarga del ciclo, simplemente desenrrollarlo por un factor de 10.
- 1. ¿Cuánto tarda mi aplicación Python en ejecutarse?
- 2. ¿Alguna herramienta que indique cuánto tarda cada método en ejecutarse?
- 3. ¿Cuál es la mejor manera de medir cuánto tiempo tarda el código en ejecutarse?
- 4. ¿Cómo se cronometra cuánto tarda un programa de Python en ejecutarse?
- 5. ¿Cuánto tarda Dropbox en revisar la aplicación?
- 6. ¿Cómo puedo calcular cuánto tiempo tarda una función en jQuery?
- 7. JS: ¿Cuánto tiempo se tarda en llamar a una función?
- 8. Manejo de excepciones. ¿Cuánto tiempo tarda la captura?
- 9. ¿Cuánto tiempo durará mi sesión?
- 10. Creación de una interfaz web para una secuencia de comandos que tarda 30 minutos en ejecutarse
- 11. ¿Cuánto tiempo conserva su código?
- 12. ¿Cuándo comenzó mi aplicación a ejecutarse?
- 13. ¿Qué sucede si un TimerTask tarda más en ejecutarse que el intervalo especificado?
- 14. ¿Cómo puedo medir el tiempo de CPU que tarda una función Clojure en ejecutarse?
- 15. ¿Cómo medir el tiempo que tarda una función en ejecutarse desde un shell erlang?
- 16. ¿Cuánto tiempo tarda Android Emulator en comenzar? ¿Necesita cerrar/iniciar si cada vez que cambia el código de Java?
- 17. ¿Cuánto tiempo se tarda en crear 1 millón de hilos en Haskell?
- 18. ¿Por qué mi gema tarda tanto en cargarse?
- 19. Tiempo que tarda una importación en Python
- 20. ¿Cuánto tiempo tarda una consulta que devuelve 5 millones de registros?
- 21. ¿Cuánto tiempo lleva ejecutar un ciclo?
- 22. ¿Cómo puedo consultar cuánto tiempo tarda una restauración de la base de datos del servidor SQL?
- 23. SQL Server Stored Proc tarda (mucho) más tiempo en ejecutarse que la misma consulta ejecutada desde texto en Management Studio
- 24. ¿Por qué mi instrucción "if" parece no ejecutarse?
- 25. Python: ¿por qué este código tarda una eternidad (bucle infinito?)
- 26. MVC: ¿cuánto código debería haber en una vista?
- 27. ¿Cuánto código en una vista de rieles está bien?
- 28. ¿Cómo saber cuánto tiempo cuesta el código "sincronizado" en Java?
- 29. ¿Cuánto código debería uno poner en un constructor?
- 30. ¿Cuánto tiempo se tarda en calcular los tamaños retenidos en VM visual para un montón de 1 GB?
Gracias personales por MiniBench, Jon: se ha convertido en una herramienta invaluable para mí. –
@C Rogers: ¡Probablemente lo haya usado más de lo que tengo entonces! Realmente lo volveré a hacer algún tiempo ... escribir ha tomado más bien por el momento sin embargo :( –