erlang各种有用的函数包括一些有用nif封装,还有一些性能测试case。
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 
 
 
 

51 satır
1.1 KiB

-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.