diff --git a/src/measure/utTc.erl b/src/measure/utTc.erl index 3adacd0..d5c14ef 100644 --- a/src/measure/utTc.erl +++ b/src/measure/utTc.erl @@ -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").