221V 3 лет назад
Родитель
Сommit
fa71e06452
3 измененных файлов с 54 добавлено и 9 удалено
  1. 2 0
      apps/myapp/src/myapp_events2.erl
  2. 0 1
      apps/myapp/src/myapp_sup.erl
  3. 52 8
      apps/myapp/src/test.erl

+ 2 - 0
apps/myapp/src/myapp_events2.erl

@@ -52,6 +52,8 @@ start_link() ->
 
 
 init([]) ->
+  ets:new(events_table, [set, named_table, { keypos, 1 }, private]),
+  
   %erlang:send_after(100, self(), check_time_process),
   self() ! check_time_process,
   State = [],

+ 0 - 1
apps/myapp/src/myapp_sup.erl

@@ -8,7 +8,6 @@ start_link() ->
   supervisor:start_link({local, ?MODULE}, ?MODULE, []).
 
 init(_Args) ->
-  ets:new(events_table, [set, named_table, { keypos, 1 }, public, {write_concurrency, true}]),
   
   Procs = [
     #{id => worker_1,

+ 52 - 8
apps/myapp/src/test.erl

@@ -63,15 +63,37 @@ testn(T) -> % T -- умовно секунди - кількість циклів
   ok.
 
 testn_h(true) ->
-  [myapp_events2:add_task(integer_to_list(X), X, dynamic, 5) || X <- lists:seq(1, 20_000)],
-  [myapp_events2:delete_task(integer_to_list(X), X) || X <- lists:seq(10_001, 30_000)],
+  %[myapp_events2:add_task(integer_to_list(X), X, dynamic, 5) || X <- lists:seq(1, 20_000)],
+  %[myapp_events2:delete_task(integer_to_list(X), X) || X <- lists:seq(10_001, 30_000)],
+  testn_h11(1),
+  testn_h12(10_001),
   ok;
 testn_h(_) ->
   Timestamp_Now = erlang:system_time(second),
-  [myapp_events2:add_task(integer_to_list(X) ++ ".", X, static, Timestamp_Now + 5) || X <- lists:seq(20_001, 40_000)],
-  [myapp_events2:delete_task(integer_to_list(X) ++ ".", X) || X <- lists:seq(30_001, 50_000)],
+  %[myapp_events2:add_task(integer_to_list(X) ++ ".", X, static, Timestamp_Now + 5) || X <- lists:seq(20_001, 40_000)],
+  %[myapp_events2:delete_task(integer_to_list(X) ++ ".", X) || X <- lists:seq(30_001, 50_000)],
+  testn_h13(20_001, Timestamp_Now),
+  testn_h14(30_001),
   ok.
 
+testn_h11(20_001) -> ok;
+testn_h11(X) ->
+  myapp_events2:add_task(integer_to_list(X), X, dynamic, 5),
+  testn_h11(X + 1).
+testn_h12(30_001) -> ok;
+testn_h12(X) ->
+  myapp_events2:delete_task(integer_to_list(X), X),
+  testn_h12(X + 1).
+
+testn_h13(40_001, _) -> ok;
+testn_h13(X, Timestamp_Now) ->
+  myapp_events2:add_task(integer_to_list(X) ++ ".", X, static, Timestamp_Now + 5),
+  testn_h13(X + 1, Timestamp_Now).
+testn_h14(50_001) -> ok;
+testn_h14(X) ->
+  myapp_events2:delete_task(integer_to_list(X) ++ ".", X),
+  testn_h14(X + 1).
+
 
 testn_b(0) -> io:format("~p~n",["the end"]);
 testn_b(T) -> % T -- умовно секунди - кількість циклів по 20_000 нових заявок та 20_000 видалень
@@ -90,14 +112,36 @@ testn_b(T) -> % T -- умовно секунди - кількість циклі
   ok.
 
 testn_h2(true) ->
-  [myapp_events2:add_task_b(integer_to_list(X), X, dynamic, 5) || X <- lists:seq(1, 20_000)],
-  [myapp_events2:delete_task_b(integer_to_list(X), X) || X <- lists:seq(10_001, 30_000)],
+  %[myapp_events2:add_task_b(integer_to_list(X), X, dynamic, 5) || X <- lists:seq(1, 20_000)],
+  %[myapp_events2:delete_task_b(integer_to_list(X), X) || X <- lists:seq(10_001, 30_000)],
+  testn_h21(1),
+  testn_h22(10_001),
   ok;
 testn_h2(_) ->
   Timestamp_Now = erlang:system_time(second),
-  [myapp_events2:add_task_b(integer_to_list(X) ++ ".", X, static, Timestamp_Now + 5) || X <- lists:seq(20_001, 40_000)],
-  [myapp_events2:delete_task_b(integer_to_list(X) ++ ".", X) || X <- lists:seq(30_001, 50_000)],
+  %[myapp_events2:add_task_b(integer_to_list(X) ++ ".", X, static, Timestamp_Now + 5) || X <- lists:seq(20_001, 40_000)],
+  %[myapp_events2:delete_task_b(integer_to_list(X) ++ ".", X) || X <- lists:seq(30_001, 50_000)],
+  testn_h23(20_001, Timestamp_Now),
+  testn_h24(30_001),
   ok.
 
+testn_h21(20_001) -> ok;
+testn_h21(X) ->
+  myapp_events2:add_task_b(integer_to_list(X), X, dynamic, 5),
+  testn_h21(X + 1).
+testn_h22(30_001) -> ok;
+testn_h22(X) ->
+  myapp_events2:delete_task_b(integer_to_list(X), X),
+  testn_h22(X + 1).
+
+testn_h23(40_001, _) -> ok;
+testn_h23(X, Timestamp_Now) ->
+  myapp_events2:add_task_b(integer_to_list(X) ++ ".", X, static, Timestamp_Now + 5),
+  testn_h23(X + 1, Timestamp_Now).
+testn_h24(50_001) -> ok;
+testn_h24(X) ->
+  myapp_events2:delete_task_b(integer_to_list(X) ++ ".", X),
+  testn_h24(X + 1).
+