Estoy sincronizando algunos algoritmos y se me ocurrió la función de tiempo a continuación. Sin embargo, siempre devuelve 0 ms.¿Por qué esta función de tiempo mide siempre 0 ms?
La pregunta es por qué siempre es 0ms cuando claramente toma unos segundos. Soy un desarrollador de F #, por lo que probablemente me falten algunos conceptos.
Tenga en cuenta que la cuestión no se trata de un algoritmo de Fibonacci más eficiente y también sé que la función es medir el tiempo del mundo real en lugar de tiempo de CPU (que puede ser obtenido por Sys.time())
let time f x =
let timer = new System.Diagnostics.Stopwatch()
timer. Start ()
try f x finally
printf "Took %dms" timer.ElapsedMilliseconds;;
let rec fib x =
if x < 2 then 1
else fib(x-1) + fib(x-2)
time Array.iter (fun x -> ignore (fib x)) [| 1 .. 40 |]
Gracias por cualquier ayuda y punteros para un comienzo F # desarrollador
Saludos, Tom