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

时间:2014-10-01 03:36:44

标签: elixir

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

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

Elixir中是否有相同的物质?

1 个答案:

答案 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绰绰有余的一些包装代码