¿Cómo saber la cantidad de tiempo que mi código ha tomado en ocaml? ¿Hay alguna función para medir eso?Tiempo de ejecución en Ocaml
Respuesta
Si desea medir el tiempo de ejecución de las funciones individuales, esta función de utilidad es muy útil en muchos casos:
let time f x =
let t = Sys.time() in
let fx = f x in
Printf.printf "Execution time: %fs\n" (Sys.time() -. t);
fx
donde f
es cualquier función que toma x
como el argumento y devuelve algo
Puede usar Sys.time(). Devuelve el tiempo del procesador, en segundos, utilizado por el programa desde el comienzo de la ejecución.
Fuente: http://caml.inria.fr/pub/docs/manual-ocaml/libref/Sys.html
En mi propia codificación, uso Unix.gettimeofday()
, que devuelve un valor flotante con una resolución de mucho menos de un segundo. Se describe en el documentation for the OCaml Unix module. A pesar del nombre del módulo, esta función también funciona en Windows (y probablemente en casi todos los entornos que pueda encontrar).
Si vuelvo a escribir la respuesta de la almohadilla me sale el siguiente código:
let time f x =
let start = Unix.gettimeofday()
in let res = f x
in let stop = Unix.gettimeofday()
in let() = Printf.printf "Execution time: %fs\n%!" (stop -. start)
in
res
- 1. Localización en tiempo de ejecución
- 2. Tiempo promedio de ejecución
- 3. Recopilación en tiempo de ejecución y en tiempo de ejecución C#
- 4. burlarse en tiempo de ejecución en C?
- 5. tiempo de ejecución de mysql
- 6. operador sizeof en tiempo de compilación o tiempo de ejecución
- 7. Crear plantillas T4 en tiempo de ejecución (tiempo de compilación)?
- 8. Controles de redimensionamiento En tiempo de ejecución
- 9. método de llamada en tiempo de ejecución
- 10. Cambio de código en tiempo de ejecución
- 11. Cambio de menú en tiempo de ejecución
- 12. Tiempo de ejecución de CPU en Java
- 13. find C++ tiempo de ejecución
- 14. Oracle query tiempo de ejecución
- 15. Tiempo de ejecución del programa
- 16. Máximo tiempo de ejecución problema
- 17. tiempo de ejecución "real" límite
- 18. symfony2 - Obtener tiempo de ejecución
- 19. set() tiempo de ejecución en python
- 20. Cargando jar en el tiempo de ejecución
- 21. Cambiar la orientación en tiempo de ejecución
- 22. Registrar programáticamente HttpModules en tiempo de ejecución
- 23. BigO tiempo de ejecución en algunos métodos
- 24. habilita HeapDumpOnOutOfMemoryError en tiempo de ejecución
- 25. Calcular ciento en tiempo de ejecución
- 26. cargar código python en tiempo de ejecución
- 27. Agregar imagen en tiempo de ejecución
- 28. crear Tframes en tiempo de ejecución:
- 29. Ejecutar conversión implícita en tiempo de ejecución
- 30. knockout.js cargando plantillas en tiempo de ejecución
Sys.time() está dando en funcionamiento incorrecto. Dio 341.1 s para un programa pequeño. Cuando usé el comando de tiempo Unix, me dio solo 0.001 s. – priyanka
Nunca he visto una falla como esta. ¿Puedes mostrar cómo se ve tu código? (Tal vez agréguela al final de su pregunta.) –
Llamar a Sys.time() en un Toplevel devolverá la cantidad de tiempo que el subproceso Toplevel ha pasado ejecutando el código. – ben