timer:tc/3对于统计函数运行时间是个很不错的函数,

截图timer:tc/1,tc/2,tc/3的API:

关于erlang中的timer:tc/3-LMLPHP

拿斐波那契数列入手做个讲解:

-module(fib).
-export([fib/1]). fib(0) -> 0;
fib(1) -> 1;
fib(N) when N>1 -> fib(N-1) + fib(N-2).

对于统计运行时间,直接上图:

关于erlang中的timer:tc/3-LMLPHP

这里的355000为MincSeconds.

注意:这是统计从1到30,斐波那契函数运行的总时间。

若要使变通下,要是求每个运行的时间,(若是求)计算每个函数请求的响应时间,则如下:

关于erlang中的timer:tc/3-LMLPHP

ps:这里可以扩展做获取每个request的接口的请求时间.

timer:tc/3  是在代码调优中的很好的工具以及获取某函数运行时间.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

下面是斐波那契数列的实现:

-module(feibo).
-export([feibo_list/1,ele/1]). %% 运行:feibo:feibo_list(5).
%% 结果示例:【1,1,2,3,5】 %% 函数element主要为了计算斐波那契数列的第N个元素
ele(1) -> 1;
ele(2) -> 1;
ele(N) -> ele(N-1) + ele(N-2). %% 给定一个N,求出斐波那契的前N个数
feibo_list(N) -> feibo_list([], N).
feibo_list(L, 0) -> L;
feibo_list(L, N) -> feibo_list([ele(N)|L], N-1).

  

05-15 07:44