9

有人可以向我指出一些 erlang 代码,它可以让我计算运行某些代码需要多长时间吗?

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

4

3 回答 3

21

您可以使用该erlang:statistics功能。

这在 Joe Armstrong 的 Programming Erlang 书 (p141) 中使用。

例如

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是总经过时间(挂钟时间)。

于 2012-11-14T15:13:16.353 回答
11

定时器库;检查tc/[1-3]

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

于 2012-11-14T15:03:09.407 回答
5
 Take a look at timer:tc(Module, Function, Arguments)
于 2012-11-14T14:58:28.740 回答