¿Cómo puedo obtener el tiempo de ejecución de un programa a través de las funciones de tiempo del sistema en Haskell? Me gustaría medir el tiempo de ejecución de un programa completo y/o una función individual.Cómo obtener el tiempo de ejecución de un programa en Haskell
Respuesta
Asumiendo que no sólo quiere medir el tiempo total de ejecución de su programa, así:
$ time ./A
A continuación, puede tiempo un cálculo de un número de maneras en Haskell:
- Basic timing (por ejemplo como en el timeit package)
- Timing in cycles
Para la medición más estadísticamente sonido, considere
Finalmente, en todos los casos, debe pensar en la evaluación diferida: ¿desea medir el costo de evaluar completamente los datos que produce, o simplemente a su constructor más externo?
¿funcionará esto también en Windows? –
Las soluciones de Haskell funcionan todas en Windows, sí. –
¿Qué hay de compilar con '-prof' y usar' + RTS -s'? – ErikR
1) Si quiere comparar algo, use el paquete criterion.
2) Si desea medir el tiempo de una función y es positivo que haya controlado para la pereza, según sea necesario, a continuación, sólo tiene que utilizar Data.Time.getCurrentTime
del paquete time .:
import Data.Time
...
start <- getCurrentTime
runOperation
stop <- getCurrentTime
print $ diffUTCTime stop start
Un envase impermeable a la tendencia mencionada puede ser encontrado en el paquete timeit.
3) Si realmente desea el tiempo de ejecución de un programa que acaba de estar escrito en Haskell, utilice la utilidad de sistemas time
. Para la mayoría de los sistemas POSIX (Mac, Linux) simplemente ejecute:
$ time ./SomeProgram
E informará el usuario, la pared y la hora del sistema.
No estoy seguro de cuán exacto es, pero usando :set +s
en ghci se mostrará el tiempo y el espacio utilizados para los cálculos posteriores.
gracias por la información! –
:set +s
es realmente bueno si utiliza ghci, de lo contrario puede usar Criterion.Measurement
, consulte my answer to another question with example.
- 1. Eclipse para obtener el tiempo de ejecución del programa
- 2. Tiempo de ejecución del programa
- 3. Tiempo de ejecución variable de un programa en C
- 4. Tiempo transcurrido de ejecución de un programa en C
- 5. Obtener el número de subprocesos RTS en el programa Haskell?
- 6. MySQLNonTransientConnectionException en el programa JDBC en tiempo de ejecución
- 7. ¿Cómo obtener el tipo genérico en tiempo de ejecución?
- 8. cómo obtener entrada del usuario en el tiempo de ejecución
- 9. symfony2 - Obtener tiempo de ejecución
- 10. ¿Cómo puedo encontrar el tiempo de ejecución de una sección de mi programa en C?
- 11. ¿Cómo obtener el tiempo de ejecución usando msp430?
- 12. ¿Cómo usar struct timeval para obtener el tiempo de ejecución?
- 13. Cómo encontrar el número de núcleos en tiempo de ejecución en Haskell
- 14. Obtiene el tiempo de ejecución de un subproceso Java
- 15. ¿Cómo obtener tiempo de ejecución en la consola de rieles?
- 16. Tiempo promedio de ejecución
- 17. ¿Cómo termina Eclipse un programa en ejecución?
- 18. Cómo medir el tiempo de ejecución de un pepino paso
- 19. Alojando el tiempo de ejecución de .NET en un programa Delphi
- 20. obtener el valor de tiempo de ejecución de un ParameterExpression en un árbol de expresión
- 21. ¿Cómo limitar el tiempo de ejecución del programa cuando se utiliza un subproceso?
- 22. ¿Cómo cargo un módulo en tiempo de ejecución en Perl?
- 23. Obtener un tiempo de ejecución preciso de una instrucción MySQL
- 24. Obtener el tiempo de ejecución de la consulta de PostgreSQL
- 25. ejecución de la matriz de ejecución haskell
- 26. Cómo cargar un archivo jar en el tiempo de ejecución
- 27. Herramientas para analizar el rendimiento de un programa Haskell
- 28. ¿Cómo veo un STDOUT de un programa en ejecución de un programa perl que lo llamó?
- 29. ¿Cómo puedo obtener el estado de un programa?
- 30. Localización en tiempo de ejecución
Ver también http://stackoverflow.com/questions/1516808/writing-a-time-function-in-haskell –