From 92424d94b75d8699feb4a61360a3e89256747c66 Mon Sep 17 00:00:00 2001 From: Pavel Abalihin Date: Mon, 25 Apr 2016 12:56:39 +0300 Subject: [PATCH] Use erlang:system_time/1 for OTP 18 --- rebar.config | 4 ++++ src/perftest.erl | 12 +++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 rebar.config diff --git a/rebar.config b/rebar.config new file mode 100644 index 0000000..bad8420 --- /dev/null +++ b/rebar.config @@ -0,0 +1,4 @@ +%% -*- erlang -*- +{erl_opts, [debug_info, + warnings_as_errors, + {platform_define, "^18", deprecated_now}]}. diff --git a/src/perftest.erl b/src/perftest.erl index a39cb9c..5ee9632 100644 --- a/src/perftest.erl +++ b/src/perftest.erl @@ -4,6 +4,12 @@ -module(perftest). -export([comprehensive/2, sequential/2, sequentialTimings/2, parallel/3]). +-ifdef(deprecated_now). +-define(NOW, erlang:system_time(micro_seconds)). +-else. +-define(NOW, erlang:now()). +-endif. + comprehensive(Cycles, F) -> sequential(round(Cycles/10), F), % Warming up 1 sequential(round(Cycles/5), F), % Warming up 2 @@ -20,7 +26,7 @@ sequential(Cycles, F) -> fun () -> executeMultipleTimes(Cycles, F) end). sequentialTimings(Cycles, F) -> - [ begin S = now(), F(), E = now(), timer:now_diff(E, S) end || _ <- lists:seq(1, Cycles) ]. + [ begin S = ?NOW, F(), E = ?NOW, timer:now_diff(E, S) end || _ <- lists:seq(1, Cycles) ]. parallel(Parallel, Cycles, F) -> perftest("Parallel " ++ integer_to_list(Parallel), Cycles, fun () -> @@ -36,9 +42,9 @@ parallel(Parallel, Cycles, F) -> end). perftest(Name, Cycles, F) -> - {_, StartSecs, StartMS} = now(), + {_, StartSecs, StartMS} = ?NOW, F(), - {_, StopSecs, StopMS} = now(), + {_, StopSecs, StopMS} = ?NOW, MS = (StopSecs * 1000 + StopMS / 1000) - (StartSecs * 1000 + StartMS / 1000), CPS = round(1000 * Cycles / MS),