读书人

测试比较io_lib生终日期与自己实现的效

发布时间: 2012-11-17 11:14:15 作者: rapoo

测试比较io_lib生成日期与自己实现的效率

测试结果,自己写的效率要高一些

?

4> test_io:test(1000)?

4> .

{[io,0],[my,0]}

5> test_io:test(10000)

5> .

{[io,2],[my,1]}

6> test_io:test(100000)

6> .

{[io,21],[my,4]}

7> test_io:test(1000000)

7> .

{[io,97],[my,57]}

8> test_io:test(10000000)

8> .

{[io,1596],[my,761]}

9>?



1 -module(test_io). ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? 2 -export([test/1, test/0]).? 3?? 4 test() ->? 5 ? ? test(1).? 6?? 7 test(N) ->? 8 ? ? IoResult = test_io(N),? 9 ? ? MyResult = test_my(N),?10 ? ? {[io, IoResult],[my, MyResult]}.?11??12 test_io(N) ->?13 ? ? StartTime = timestamp_in_millinsec(),?14 ? ? [begin?15 ? ? ? ? {{Y,M,D},{Hour,Min,Sec}}=erlang:localtime(),?16 ? ? ? ? Date = lists:flatten(io_lib:format("~4..0B-~2..0B-~2..0B ~2..0B-~2..0B-~2..0B", [Y, M, D, Hour, Min, Sec])),?17 ? ? ? ? Date?18 ? ? end || tt<-lists:seq(1,N)],?19 ? ? EndTime = timestamp_in_millinsec(),?20 ? ? EndTime - StartTime.?21 ? ???22 test_my(N) ->?23 ? ? StartTime = timestamp_in_millinsec(),?24 ? ???25 ? ? [begin?26 ? ? {{Y,M,D},{H,Mn,S}}=erlang:localtime(),?27 ? ? F=fun(X) -> if X>9 ?-> integer_to_list(X) ; true -> "0"++integer_to_list(X) end end,?28 ? ? Ys = F(Y),?29 ? ? Ms = F(M),?30 ? ? Ds = F(D),?31 ? ? Hs = F(H),?32 ? ? Mns = F(Mn),?33 ? ? Ss = F(S),?34 ? ? Date = (Ys ++ "-" ++ Ms ++ "-" ++ Ds ++ " " ++ Hs ++ ":" ++ Mns ++":" ++Ss),?35 ? ? Date?36 ? ? end || tt<-lists:seq(1,N)],?37 ? ? EndTime = timestamp_in_millinsec(),?38 ? ? EndTime - StartTime.
?42??43 timestamp_in_millinsec()-> ??44 ? ? {MegaSec,Sec,MicoSec}=erlang:now(), ??45 ? ? MegaSec * 1000000000+Sec*1000+MicoSec div 1000. ??46 ? ? ??

?

读书人网 >编程

热点推荐