用于测量执行时间操作的Erlang代码?

时间:2012-11-14 14:54:42

标签: erlang

有人可以如此友善地指出一些erlang代码,它允许我计算运行某些代码所需的时间吗?

我还没有看到有可用的erlang库吗?

3 个答案:

答案 0 :(得分:18)

您可以使用erlang:statistics功能。

这用于Joe Armstrong的编程Erlang书(p141)。

e.g。

yourfun() ->

    statistics(runtime),
    statistics(wall_clock),

    % your code here

    {_, Time1} = statistics(runtime),
    {_, Time2} = statistics(wall_clock),
    U1 = Time1 * 1000,
    U2 = Time2 * 1000,
    io:format("Code time=~p (~p) microseconds~n",
    [U1,U2]).

在此示例中,U1是CPU时间,U2是总耗用时间(挂钟时间)。

答案 1 :(得分:10)

timer库;检查tc/[1-3]

您还可以使用erlang:now/0收集时间戳,然后计算持续时间(now_diff/2对此非常有用)。

答案 2 :(得分:5)

 Take a look at timer:tc(Module, Function, Arguments)