Skip to content

Instantly share code, notes, and snippets.

@maxlapshin
Created September 8, 2010 10:46
Show Gist options
  • Save maxlapshin/569950 to your computer and use it in GitHub Desktop.
Save maxlapshin/569950 to your computer and use it in GitHub Desktop.
#!/usr/bin/env escript
-record(test, {q, w,e,r,t,y}).
some() -> random:uniform(6).
iter1(0, _) ->
done;
iter1(X, V) ->
%io:format(".. ~p~n", [proplists:get_value(random:uniform(6), V)]),
proplists:get_value(some(), V),
iter1(X-1, V).
iter2(0, _) ->
done;
iter2(X, V) ->
element(some(), V),
iter2(X-1, V).
iter3(0, _) ->
done;
iter3(X, V) ->
random:uniform(6),
iter3(X-1, V).
main(_) ->
{A1, A2, A3} = now(),
random:seed(A1, A2, A3),
T1 = [{1, "q"}, {2, "w"}, {3, "e"}, {4, "r"}, {5, "t"}, {6, "y"}],
T2 = #test{q="1", w="2", e="3", r="4", t="5", y="6"},
Start1 = now(),
iter1(100000, T1),
Stop1 = now(),
Start2 = now(),
iter2(100000, T2),
Stop2 = now(),
Start3 = now(),
iter3(100000, T2),
Stop3 = now(),
io:format("Done: ~p, ~p, ~p~n", [timer:now_diff(Stop1, Start1), timer:now_diff(Stop2, Start2), timer:now_diff(Stop3,Start3)]).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment