|
|
@ -14,8 +14,9 @@ |
|
|
|
%% utTc:tm(ProcessesCount, LoopTimes, Module, Function, ArgsList). |
|
|
|
|
|
|
|
doTc(M, F, A) -> |
|
|
|
{Microsecond, _} = timer:tc(M, F, A), |
|
|
|
Microsecond. |
|
|
|
StartTime = system_time(nanosecond), |
|
|
|
M:F(A), |
|
|
|
system_time(nanosecond) - StartTime. |
|
|
|
|
|
|
|
distribution(List, Aver) -> |
|
|
|
distribution(List, Aver, 0, 0). |
|
|
@ -39,10 +40,10 @@ ts(LoopTime, M, F, A) -> |
|
|
|
io:format("execute Fun :~p~n", [F]), |
|
|
|
io:format("execute Mod :~p~n", [M]), |
|
|
|
io:format("execute LoopTime:~p~n", [LoopTime]), |
|
|
|
io:format("MaxTime: ~10s(us) ~10s(s)~n", [integer_to_binary(Max), float_to_binary(Max / 1000000, [{decimals, 6}, compact])]), |
|
|
|
io:format("MinTime: ~10s(us) ~10s(s)~n", [integer_to_binary(Min), float_to_binary(Min / 1000000, [{decimals, 6}, compact])]), |
|
|
|
io:format("SumTime: ~10s(us) ~10s(s)~n", [integer_to_binary(Sum), float_to_binary(Sum / 1000000, [{decimals, 6}, compact])]), |
|
|
|
io:format("AvgTime: ~10s(us) ~10s(s)~n", [float_to_binary(Aver, [{decimals, 6}, compact]), float_to_binary(Aver / 1000000, [{decimals, 6}, compact])]), |
|
|
|
io:format("MaxTime: ~10s(ns) ~10s(s)~n", [integer_to_binary(Max), float_to_binary(Max / 1000000000, [{decimals, 6}, compact])]), |
|
|
|
io:format("MinTime: ~10s(ns) ~10s(s)~n", [integer_to_binary(Min), float_to_binary(Min / 1000000000, [{decimals, 6}, compact])]), |
|
|
|
io:format("SumTime: ~10s(ns) ~10s(s)~n", [integer_to_binary(Sum), float_to_binary(Sum / 1000000000, [{decimals, 6}, compact])]), |
|
|
|
io:format("AvgTime: ~10s(ns) ~10s(s)~n", [float_to_binary(Aver, [{decimals, 6}, compact]), float_to_binary(Aver / 1000000000, [{decimals, 6}, compact])]), |
|
|
|
io:format("Grar : ~10s(cn) ~10s(~s)~n", [integer_to_binary(Greater), float_to_binary(Greater / LoopTime, [{decimals, 2}]), <<"%">>]), |
|
|
|
io:format("Less : ~10s(cn) ~10s(~s)~n", [integer_to_binary(Less), float_to_binary(Less / LoopTime, [{decimals, 2}]), <<"%">>]), |
|
|
|
io:format("=====================~n"). |
|
|
@ -53,22 +54,22 @@ loopTs(0, _M, _F, _A, LoopTime, Max, Min, Sum, List) -> |
|
|
|
{Greater, Less} = distribution(List, Aver), |
|
|
|
{Max, Min, Sum, Aver, Greater, Less}; |
|
|
|
loopTs(Index, M, F, A, LoopTime, Max, Min, Sum, List) -> |
|
|
|
Microsecond = doTc(M, F, A), |
|
|
|
NewSum = Sum + Microsecond, |
|
|
|
Nanosecond = doTc(M, F, A), |
|
|
|
NewSum = Sum + Nanosecond, |
|
|
|
if |
|
|
|
Max == 0 -> |
|
|
|
NewMax = NewMin = Microsecond; |
|
|
|
Max < Microsecond -> |
|
|
|
NewMax = Microsecond, |
|
|
|
NewMax = NewMin = Nanosecond; |
|
|
|
Max < Nanosecond -> |
|
|
|
NewMax = Nanosecond, |
|
|
|
NewMin = Min; |
|
|
|
Min > Microsecond -> |
|
|
|
Min > Nanosecond -> |
|
|
|
NewMax = Max, |
|
|
|
NewMin = Microsecond; |
|
|
|
NewMin = Nanosecond; |
|
|
|
true -> |
|
|
|
NewMax = Max, |
|
|
|
NewMin = Min |
|
|
|
end, |
|
|
|
loopTs(Index - 1, M, F, A, LoopTime, NewMax, NewMin, NewSum, [Microsecond | List]). |
|
|
|
loopTs(Index - 1, M, F, A, LoopTime, NewMax, NewMin, NewSum, [Nanosecond | List]). |
|
|
|
|
|
|
|
|
|
|
|
%% =================================================================== |
|
|
@ -84,10 +85,10 @@ tm(ProcCnt, LoopTime, M, F, A) -> |
|
|
|
io:format("execute Mod :~p~n", [M]), |
|
|
|
io:format("execute LoopTime:~p~n", [LoopTime]), |
|
|
|
io:format("execute ProcCnts:~p~n", [ProcCnt]), |
|
|
|
io:format("MaxTime: ~10s(us) ~10s(s)~n", [integer_to_binary(Max), float_to_binary(Max / 1000000, [{decimals, 6}, compact])]), |
|
|
|
io:format("MinTime: ~10s(us) ~10s(s)~n", [integer_to_binary(Min), float_to_binary(Min / 1000000, [{decimals, 6}, compact])]), |
|
|
|
io:format("SumTime: ~10s(us) ~10s(s)~n", [integer_to_binary(Sum), float_to_binary(Sum / 1000000, [{decimals, 6}, compact])]), |
|
|
|
io:format("AvgTime: ~10s(us) ~10s(s)~n", [float_to_binary(Aver, [{decimals, 6}, compact]), float_to_binary(Aver / 1000000, [{decimals, 6}, compact])]), |
|
|
|
io:format("MaxTime: ~10s(ns) ~10s(s)~n", [integer_to_binary(Max), float_to_binary(Max / 1000000000, [{decimals, 6}, compact])]), |
|
|
|
io:format("MinTime: ~10s(ns) ~10s(s)~n", [integer_to_binary(Min), float_to_binary(Min / 1000000000, [{decimals, 6}, compact])]), |
|
|
|
io:format("SumTime: ~10s(ns) ~10s(s)~n", [integer_to_binary(Sum), float_to_binary(Sum / 1000000000, [{decimals, 6}, compact])]), |
|
|
|
io:format("AvgTime: ~10s(ns) ~10s(s)~n", [float_to_binary(Aver, [{decimals, 6}, compact]), float_to_binary(Aver / 1000000000, [{decimals, 6}, compact])]), |
|
|
|
io:format("Grar : ~10s(cn) ~10s(~s)~n", [integer_to_binary(Greater), float_to_binary(Greater / LoopTime, [{decimals, 2}]), <<"%">>]), |
|
|
|
io:format("Less : ~10s(cn) ~10s(~s)~n", [integer_to_binary(Less), float_to_binary(Less / LoopTime, [{decimals, 2}]), <<"%">>]), |
|
|
|
io:format("=====================~n"). |
|
|
|