pad*_*pad 18
如果要测量单个函数的执行时间,此实用程序函数在许多情况下都很有用:
let time f x =
let t = Sys.time() in
let fx = f x in
Printf.printf "Execution time: %fs\n" (Sys.time() -. t);
fx
Run Code Online (Sandbox Code Playgroud)
where f
是什么函数,它x
作为参数并返回一些东西.
Jef*_*eld 16
在我自己的编码中,我使用Unix.gettimeofday ()
,返回一个浮点值,其分辨率远小于一秒.它在OCaml Unix模块的文档中有所描述.尽管该模块的名称,该功能也适用于Windows(可能几乎在您可能遇到的所有环境中).
如果我重写pad的答案,我会得到以下代码:
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
Run Code Online (Sandbox Code Playgroud)