答案 0 :(得分:7)
最简单的工具是使用Erlang的:timer
模块,其中一个是tc
个变体。它以微秒为单位返回执行时间,并将函数的结果作为元组返回。要为匿名函数计时,你可以
{time, res} = :timer.tc fn -> :timer.sleep(1000) end
# {1000575, :ok}
{time, res} = :timer.tc(fn(ms) -> :timer.sleep(ms) end, [1000])
# {1001283, :ok}
计时模块功能
defmodule Sleepy do
def sleep(ms) do
:timer.sleep(ms)
end
end
{time, res} = :timer.tc(&Sleepy.sleep/1, [1000])
# {1001106, :ok}
{time, res} = :timer.tc(Sleepy, :sleep, [1000])
# {1000352, :ok}
Timex是另一个选项,它有一个更友好的API来测量时间,除此之外,如果您只需要计算时间,:timer
绰绰有余的一些包装代码