Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:23
erlang
5544-Dilute-benchmark-overhead-and-increase-pre...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 5544-Dilute-benchmark-overhead-and-increase-precision.patch of Package erlang
From 1b0aa9084203bf74c8cb6b27754ac3aa6a6873ac Mon Sep 17 00:00:00 2001 From: Raimo Niskanen <raimo@erlang.org> Date: Thu, 31 Mar 2022 15:45:38 +0200 Subject: [PATCH 04/11] Dilute benchmark overhead and increase precision --- lib/stdlib/test/rand_SUITE.erl | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/lib/stdlib/test/rand_SUITE.erl b/lib/stdlib/test/rand_SUITE.erl index 0c82076422..a9b546a5e8 100644 --- a/lib/stdlib/test/rand_SUITE.erl +++ b/lib/stdlib/test/rand_SUITE.erl @@ -1636,7 +1636,15 @@ do_measure(_Config) -> measure_loop(Fun, State) -> measure_loop(Fun, State, ?LOOP_MEASURE). %% -measure_loop(Fun, State, N) when 0 < N -> +measure_loop(Fun, State, N) when 10 =< N -> + %% Loop unrolling to dilute benchmark overhead... + measure_loop( + Fun, + Fun(Fun(Fun(Fun(Fun( + Fun(Fun(Fun(Fun(Fun( + State)))))))))), + N - 10); +measure_loop(Fun, State, N) when 1 =< N -> measure_loop(Fun, Fun(State), N-1); measure_loop(_, _, _) -> ok. @@ -1712,13 +1720,15 @@ measure_1(RangeFun, Fun, Alg, TMark, Overhead) -> Time = T - Overhead, Percent = case TMark of - warm_up -> TMark; - undefined -> 100; - _ -> (Time * 100 + 50) div TMark + warm_up -> "(warm-up)"; + undefined -> " 100.0%"; + _ -> + io_lib:format( + "~8.1f%", [(Time * 100 + 50) / TMark]) end, io:format( - "~.20w: ~p ns ~p% [16#~.16b]~n", - [Alg, (Time * 1000 + 500) div ?LOOP_MEASURE, + "~.24w: ~8.1f ns ~s [16#~.16b]~n", + [Alg, (Time * 1000 + 500) / ?LOOP_MEASURE, Percent, Range]), Parent ! {self(), Time}, normal -- 2.34.1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor