有人可以向我指出一些 erlang 代码,它可以让我计算运行某些代码需要多长时间吗?
我还没有看到可用的 erlang 库?
您可以使用该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
是总经过时间(挂钟时间)。
您还可以使用erlang:now/0收集时间戳,然后计算持续时间(now_diff/2对此非常有用)。
Take a look at timer:tc(Module, Function, Arguments)