-\r
-% les intervalles en seconde min en max entre deux postes de message d'un utilisateur\r
-% le temps d'attente est choisi au hasard entre ces deux valeurs\r
--define(INTERVALLE_MIN, 2).\r
+
+% les intervalles en seconde min en max entre deux postes de message d'un utilisateur
+% le temps d'attente est choisi au hasard entre ces deux valeurs
+-define(INTERVALLE_MIN, 2).
moyenne_temps(Module, Fun, Args, N, Total, Temps_acc) ->
{Temps, _} = timer:tc(Module, Fun, Args),
moyenne_temps(Module, Fun, Args, N - 1, Total, Temps_acc + Temps).
moyenne_temps(Module, Fun, Args, N, Total, Temps_acc) ->
{Temps, _} = timer:tc(Module, Fun, Args),
moyenne_temps(Module, Fun, Args, N - 1, Total, Temps_acc + Temps).
message_rand() ->
lists:flatten(message_rand(random:uniform(10), [])).
message_rand(0, Mots) -> Mots;
message_rand() ->
lists:flatten(message_rand(random:uniform(10), [])).
message_rand(0, Mots) -> Mots;
% attend un temp aléatoire compris entre INTERVALLE_MIN sec et INTERVALLE_MAX sec
timer:sleep(1000 * (random:uniform(?INTERVALLE_MAX - ?INTERVALLE_MIN + 1) + ?INTERVALLE_MIN - 1)),
% poste un message aléatoire par une personne aléatoire répondant à des messages aléatoires
{Message, Repond_a} = {message_rand(), messages_id_rand()},
% attend un temp aléatoire compris entre INTERVALLE_MIN sec et INTERVALLE_MAX sec
timer:sleep(1000 * (random:uniform(?INTERVALLE_MAX - ?INTERVALLE_MIN + 1) + ?INTERVALLE_MIN - 1)),
% poste un message aléatoire par une personne aléatoire répondant à des messages aléatoires
{Message, Repond_a} = {message_rand(), messages_id_rand()},
- % io:format("~p poste ~p et repond a ~w~n", [User_id, Message, Repond_a]),
+ % io:format("~p poste ~p et repond a ~w~n", [User_id, Message, Repond_a]),
io:format("~p : erreur : ~p~n", [User_id, E]),
loop(User_id, M);
_ ->
loop(User_id, M - 1)
end.
io:format("~p : erreur : ~p~n", [User_id, E]),
loop(User_id, M);
_ ->
loop(User_id, M - 1)
end.
% taille de la BD
% voir : http://erlang.org/pipermail/erlang-questions/2008-October/038697.html
bench_write_minichat(Filename) ->
% taille de la BD
% voir : http://erlang.org/pipermail/erlang-questions/2008-October/038697.html
bench_write_minichat(Filename) ->
bench_write_minichat(100000, Temps) -> Temps;
bench_write_minichat(N, Temps) ->
{T, _} = timer:tc(mnesia, transaction, [fun() ->
bench_write_minichat(100000, Temps) -> Temps;
bench_write_minichat(N, Temps) ->
{T, _} = timer:tc(mnesia, transaction, [fun() ->
pseudo = "Test",
contenu = "Blabla blabla bla.",
racine_id = random:uniform(10000)
})
end]),
bench_write_minichat(N + 1, if N rem 500 =:= 0 -> [{N, T} | Temps]; true -> Temps end).
pseudo = "Test",
contenu = "Blabla blabla bla.",
racine_id = random:uniform(10000)
})
end]),
bench_write_minichat(N + 1, if N rem 500 =:= 0 -> [{N, T} | Temps]; true -> Temps end).