public
Last active — forked from manuel-rubio/timestamp_vs_now.erl

  • Download Gist
timestamp_vs_now.erl
Erlang
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
#!/usr/bin/env escript
 
-mode(compile).
 
epoch() ->
{Mega,Sec,Mili} = os:timestamp(),
(Mega * 1000000) + Sec + (Mili / 1000000).
 
measure(F) ->
Ini = epoch(),
F(),
epoch() - Ini.
 
main(_Args) ->
Times = lists:seq(1,1000000),
Test1 = fun() -> [ os:timestamp() || _ <- Times ] end,
Test2 = fun() -> [ now() || _ <- Times ] end,
io:format("os:timestamp = ~5.2f ~5.2f ~5.2f~n", [
measure(Test1), measure(Test1), measure(Test1)
]),
io:format("erlang:now = ~5.2f ~5.2f ~5.2f~n", [
measure(Test2), measure(Test2), measure(Test2)
]),
0.

Good point!, thanks Magnus. Looks like the interpreted code is slower than compiled. Is It due to hipe?

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.