|
|
- -module(utSUtLifoDs).
- -compile([nowarn_unused_function, nowarn_unused_vars, nowarn_export_all]).
-
- -export([start/2]).
-
- start(Num, Pid) ->
- Ds = init(Num),
- Time1 = erlang:monotonic_time(),
- NewDsI = insert(Num, Ds),
- Time2 = erlang:monotonic_time(),
- NewDsR = read(Num, NewDsI),
- Time3 = erlang:monotonic_time(),
- NewDsU = update(Num, NewDsR),
- Time4 = erlang:monotonic_time(),
- NewDsF = for(Num, NewDsU),
- Time5 = erlang:monotonic_time(),
- delete(Num, NewDsF),
- Time6 = erlang:monotonic_time(),
- erlang:send(Pid, {over, self(), Time2 - Time1, Time3 - Time2, not_support, not_support, not_support, ets:info(test_lifo, memory) * erlang:system_info(wordsize)}),
- exit(normal).
-
- init(_Num) ->
- case utLifo:new(test_lifo) of
- name_used ->
- utLifo:clear(test_lifo);
- _ ->
- ok
- end.
-
- insert(0, Ds) ->
- Ds;
- insert(Num, _Ds) ->
- NewDs = utLifo:in(test_lifo, Num),
- insert(Num - 1, NewDs).
-
- read(0, Ds) ->
- Ds;
- read(Num, Ds) ->
- Value = utLifo:out(test_lifo),
- read(Num - 1, Ds).
-
- update(Num, Ds) ->
- Ds.
-
- for(Num, Ds) ->
- Ds.
-
- delete(Num, Ds) ->
- Ds.
-
-
|