- io:format("~p poste ~p et repond a ~w~n", [User_id, Message, Repond_a]),
- euphorik_bd:nouveau_message(Message, User_id, Repond_a),
- loop(User_id, M - 1).
+ % io:format("~p poste ~p et repond a ~w~n", [User_id, Message, Repond_a]),
+ case euphorik_bd:nouveau_message(Message, User_id, Repond_a) of
+ {erreur, E} ->
+ io:format("~p : erreur : ~p~n", [User_id, E]),
+ loop(User_id, M);
+ _ ->
+ loop(User_id, M - 1)
+ end.
+
+
+% Permet de tester la vitesse d'écriture en fonction de la
+% taille de la BD
+% voir : http://erlang.org/pipermail/erlang-questions/2008-October/038697.html
+bench_write_minichat(Filename) ->
+ Times = bench_write_minichat(1, []),
+ {ok, File} = file:open(Filename, [write]),
+ lists:foreach(
+ fun({Id, Time}) ->
+ io:format(File, "~w ~w~n", [Id, Time])
+ end,
+ Times
+ ),
+ file:close(File).
+bench_write_minichat(100000, Temps) -> Temps;
+bench_write_minichat(N, Temps) ->
+ {T, _} = timer:tc(mnesia, transaction, [fun() ->
+ Id = mnesia:dirty_update_counter(counter, minichat, 1),
+ mnesia:write(#minichat{
+ id = Id,
+ auteur_id = random:uniform(10000),
+ date = now(),
+ 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).
+
+
+