Tôi đang định thời gian một số thuật toán và đã đưa ra hàm thời gian bên dưới. Tuy nhiên, nó luôn trả về 0 ms.Tại sao chức năng định thời này luôn đo 0ms?
Các câu hỏi đặt ra tại sao nó luôn luôn là 0ms khi nó mất một vài giây. Tôi là một nhà phát triển F # đầu nên tôi có thể thiếu một số khái niệm.
Lưu ý rằng vấn đề không phải là về một thuật toán Fibonacci hiệu quả hơn và tôi cũng biết rằng hàm được đo thời gian thế giới thực như trái ngược với thời gian CPU (có thể thu được bằng cách 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 |]
Nhờ sự giúp đỡ và gợi ý cho một sự khởi đầu F # phát triển
Kính trọng, Tom