关于erlang中的timer:tc/3

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

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

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

-module(fib).
-export([fib/1]).

fib(0) -> 0;
fib(1) -> 1;
fib(N) when N>1 -> fib(N-1) + fib(N-2).

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

这里的355000为MincSeconds.

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

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

 

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).

  

 

posted @ 2014-06-03 18:18  孤独信徒  阅读(3168)  评论(0编辑  收藏  举报