|
|
- -module(utNifArrayDs).
- -compile([nowarn_unused_function, nowarn_unused_vars, nowarn_export_all]).
-
- -export([start/2]).
-
- start(Num, Pid) ->
- Ds = init(Num),
- Time1 = erlang:system_time(nanosecond),
- NewDsI = insert(Num - 1, Ds),
- Time2 = erlang:system_time(nanosecond),
- NewDsR = read(Num - 1, Ds),
- Time3 = erlang:system_time(nanosecond),
- NewDsU = update(Num - 1, Ds),
- Time4 = erlang:system_time(nanosecond),
- NewDsF = for(Num - 1, Ds),
- Time5 = erlang:system_time(nanosecond),
- delete(Num - 1, Ds),
- Time6 = erlang:system_time(nanosecond),
- erlang:send(Pid, {over, self(), Time2 - Time1, Time3 - Time2, Time4 - Time3, Time5 - Time4, not_support}),
- exit(normal).
-
- init(Num) ->
- nifArray:new(Num).
-
- insert(0, Ds) ->
- % Key = utTestDs:makeK(0),
- nifArray:put(Ds, 0, utTestDs:makeV(0));
- insert(Num, Ds) ->
- % Key = utTestDs:makeK(Num),
- nifArray:put(Ds, Num, utTestDs:makeV(Num)),
- insert(Num - 1, Ds).
-
- read(0, Ds) ->
- % Key = utTestDs:makeK(0),
- Value = nifArray:get(Ds, 0),
- Ds;
- read(Num, Ds) ->
- % Key = utTestDs:makeK(Num),
- Value = nifArray:get(Ds, Num),
- read(Num - 1, Ds).
-
- update(0, Ds) ->
- % Key = utTestDs:makeK(0),
- nifArray:put(Ds, 0, utTestDs:makeV2(0));
- update(Num, Ds) ->
- % Key = utTestDs:makeK(Num),
- nifArray:put(Ds, Num, utTestDs:makeV2(Num)),
- update(Num - 1, Ds).
-
- for(0, Ds) ->
- Value = nifArray:get(Ds, 0),
- Ds;
- for(Num, Ds) ->
- Value = nifArray:get(Ds, Num),
- for(Num - 1, Ds).
-
- delete(Num, Ds) ->
- ok.
-
-
|