|
|
- -module(arrayDs).
- -compile([nowarn_unused_function, nowarn_unused_vars, nowarn_export_all]).
-
- -export([start/2]).
-
- start(Num, Pid) ->
- Ds = init(Num),
- erlang:statistics(wall_clock),
- NewDsI = insert(Num - 1, Ds),
- {_, TimeI} = erlang:statistics(wall_clock),
- NewDsR = read(Num - 1, NewDsI),
- {_, TimeR} = erlang:statistics(wall_clock),
- NewDsU = update(Num - 1, NewDsR),
- {_, TimeU} = erlang:statistics(wall_clock),
- NewDsF = for(Num - 1, NewDsU),
- {_, TimeF} = erlang:statistics(wall_clock),
- delete(Num - 1, NewDsF),
- {_, TimeD} = erlang:statistics(wall_clock),
- erlang:send(Pid, {over, self(), TimeI, TimeR, TimeU, TimeF, not_support}),
- exit(normal).
-
- init(Num) ->
- array:new(Num, fixed).
-
- insert(0, Ds) ->
- Key = utTestDs:makeK(0),
- array:set(0, utTestDs:makeV(0), Ds);
- insert(Num, Ds) ->
- Key = utTestDs:makeK(Num),
- NewDs = array:set(Num, utTestDs:makeV(Num), Ds),
- insert(Num - 1, NewDs).
-
- read(0, Ds) ->
- Key = utTestDs:makeK(0),
- Value = array:get(0, Ds),
- Ds;
- read(Num, Ds) ->
- Key = utTestDs:makeK(Num),
- Value = array:get(Num, Ds),
- read(Num - 1, Ds).
-
- update(0, Ds) ->
- Key = utTestDs:makeK(0),
- array:set(0, utTestDs:makeV2(0), Ds);
- update(Num, Ds) ->
- Key = utTestDs:makeK(Num),
- NewDs = array:set(Num, utTestDs:makeV2(Num), Ds),
- update(Num - 1, NewDs).
-
- for(0, Ds) ->
- Value = array:get(0, Ds),
- Ds;
- for(Num, Ds) ->
- Value = array:get(Num, Ds),
- for(Num - 1, Ds).
-
- delete(Num, Ds) ->
- ok.
-
-
|