在Elixir中有一个等效的python timeit模块吗?

Low*_*ong 3 elixir

在python中,您可以使用timeit模块计算代码执行时间的一小部分.

https://docs.python.org/2/library/timeit.html

Elixir中是否有相同的名称?

bit*_*ker 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}
Run Code Online (Sandbox Code Playgroud)

要为模块功能计时,你可以做

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}
Run Code Online (Sandbox Code Playgroud)

Timex是另一种选择,它有一个更友好的API来测量时间,除此之外,如果你需要的只是时间的东西,:timer绰绰有余的包装代码.