|
|
@ -11,9 +11,8 @@ |
|
|
|
|
|
|
|
%-define(V_NUM, [8, 16, 32, 64, 128, 256, 516, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 524288, 1048576]). |
|
|
|
-define(V_NUM, [8, 16, 32, 64, 128, 256, 516, 1024, 2048, 4096, 8192, 16384]). |
|
|
|
%-define(DsList, [utPdDs, utArrayDs, utTupleDs, utListsDs, utMapsDs, utEtsSetDs, utEtsOrdDs, utDictDs, utGb_treesDs, utSetsDs, utGb_setsDs, utOrddictDs, utOrdsetsDs, utAtomicsDs, utPTermDs, utArrayDs1, utHashBblDs, utHashBblDs1]). |
|
|
|
%-define(DsList, [utPdDs, utArrayDs, utNifArrayDs, utTupleDs, utListsDs, utMapsDs, utEtsSetDs, utArrayDs1, utHashBblDs, utHashBblDs1, utKhashDs]). |
|
|
|
-define(DsList, [utSPdDs, utSTupleDs, utSMapsDs, utSArrayDs, utSEtsSetDs, utSSetsDs]). |
|
|
|
-define(DsList, [utSPdDs, utSTupleDs, utSListsDs, utSMapsDs, utSEtsSetDs, utSEtsOrdDs, utSArrayDs, utSDictDs, utSGb_treesDs, utSSetsDs, utSGb_setsDs, utSOrddictDs, utSOrdsetsDs]). |
|
|
|
%-define(DsList, [utSPdDs, utSTupleDs, utSMapsDs, utSArrayDs, utSEtsSetDs, utSSetsDs]). |
|
|
|
|
|
|
|
-define(Cnt, 12). |
|
|
|
|
|
|
@ -55,7 +54,7 @@ runExe(Num, Ds) -> |
|
|
|
Update = cvrTUnit(UpdateTU), |
|
|
|
For = cvrTUnit(ForTU), |
|
|
|
Delete = cvrTUnit(DeleteTU), |
|
|
|
storeStatistics(Ds, Num, Insert, Read, Update, For, Delete), |
|
|
|
storeStatistics(Ds, Num, Insert, Read, Update, For, Delete, TermSize), |
|
|
|
{_, DsName} = lists:split(2, atom_to_list(Ds)), |
|
|
|
printLog("~-10.s ~8.s ~12.s ~12.s ~10.s ~12.s ~10.s ~14.s ~10.s ~12.s ~12.s ~12.s ~12.s ~n", |
|
|
|
[DsName, integer_to_list(Num), timeToStr(Insert), calcPer(Insert, Num), timeToStr(Read), calcPer(Read, Num), timeToStr(Update), calcPer(Update, Num), timeToStr(For), calcPer(For, Num), timeToStr(Delete), calcPer(Delete, Num), sizeToStr(TermSize)]); |
|
|
@ -118,14 +117,14 @@ calcPer(skip, _Num) -> |
|
|
|
calcPer(Time, Num) -> |
|
|
|
float_to_list(Time / Num, [{decimals, 2}]) ++ "ns". |
|
|
|
|
|
|
|
calcAvgS([no_zie | _], Num) -> |
|
|
|
calcAvgS([no_size | _], Num) -> |
|
|
|
<<"noSize">>; |
|
|
|
calcAvgS(CntList, Num) -> |
|
|
|
%% 去掉最大值与最小值 然后求平均值 |
|
|
|
AvgCnt = ?Cnt - 2, |
|
|
|
SortList = lists:sort(CntList), |
|
|
|
AvgList = lists:sublist(SortList, 2, AvgCnt), |
|
|
|
float_to_list(lists:sum(AvgList) / AvgCnt / Num, [{decimals, 2}]). |
|
|
|
integer_to_list(erlang:trunc(lists:sum(AvgList) / AvgCnt)). |
|
|
|
|
|
|
|
calcAvgT([not_support | _], Num) -> |
|
|
|
<<"notSupport">>; |
|
|
@ -138,15 +137,15 @@ calcAvgT(CntList, Num) -> |
|
|
|
AvgList = lists:sublist(SortList, 2, AvgCnt), |
|
|
|
float_to_list(lists:sum(AvgList) / AvgCnt / Num, [{decimals, 2}]) ++ "ns". |
|
|
|
|
|
|
|
storeStatistics(Ds, Num, Insert, Read, Update, For, Delete) -> |
|
|
|
#tempCnt{insert = InsertList, read = ReadList, update = UpdateList, for = ForList, delete = DeleteList} = |
|
|
|
storeStatistics(Ds, Num, Insert, Read, Update, For, Delete, TermSize) -> |
|
|
|
#tempCnt{insert = InsertList, read = ReadList, update = UpdateList, for = ForList, delete = DeleteList, size = SizeList} = |
|
|
|
case erlang:get({Ds, Num}) of |
|
|
|
undefined -> |
|
|
|
#tempCnt{}; |
|
|
|
TempCnt -> |
|
|
|
TempCnt |
|
|
|
end, |
|
|
|
NewTempCnt = #tempCnt{insert = [Insert | InsertList], read = [Read | ReadList], update = [Update | UpdateList], for = [For | ForList], delete = [Delete | DeleteList]}, |
|
|
|
NewTempCnt = #tempCnt{insert = [Insert | InsertList], read = [Read | ReadList], update = [Update | UpdateList], for = [For | ForList], delete = [Delete | DeleteList], size = [TermSize | SizeList]}, |
|
|
|
erlang:put({Ds, Num}, NewTempCnt). |
|
|
|
|
|
|
|
getStatistics(Ds, Num) -> |
|
|
|