-module(test). -export([run/4]). run(_Module, _Functions, [], _Repeats) -> done; run(Module, Functions, [P | Ps], Repeats) -> io:format("~nParameter: ~w -- Start ----------~n", [P]), run_1param(Module, Functions, P, Repeats), run(Module, Functions, Ps, Repeats). run(Module, Functions, Parameters) -> {Time, _Result} = timer:tc(Module, Functions, [Parameters]), Time. % io:format(" run_1param(_Module, [], _Parameter, _Repeats) -> ok; run_1param(Module, [Function | Functions], Parameter, Repeats) -> Result = run_repeat(Module, Function, Parameter, Repeats), Avg = lists:sum(Result) / length(Result), io:format(">>~w: AVG: ~.1f micros | ", [Function, Avg]), io:format("~w~n", [Result]), run_1param(Module, Functions, Parameter, Repeats). run_repeat(_Module, _Function, _Parameter, 0) -> []; run_repeat(Module, Function, Parameter, Repeats) -> [run(Module, Function, Parameter) | run_repeat(Module, Function, Parameter, Repeats-1)].