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