From d569c6eeb48219993063f956e516704281602f7d Mon Sep 17 00:00:00 2001 From: Siddhesh Poyarekar Date: Tue, 30 Apr 2013 14:10:20 +0530 Subject: Maintain runtime of each benchmark at ~10 seconds The idea to run benchmarks for a constant number of iterations is problematic. While the benchmarks may run for 10 seconds on x86_64, they could run for about 30 seconds on powerpc and worse, over 3 minutes on arm. Besides that, adding a new benchmark is cumbersome since one needs to find out the number of iterations needed for a sufficient runtime. A better idea would be to run each benchmark for a specific amount of time. This patch does just that. The run time defaults to 10 seconds and it is configurable at command line: make BENCH_DURATION=5 bench --- scripts/bench.pl | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'scripts') diff --git a/scripts/bench.pl b/scripts/bench.pl index bb7f64897e..5856cfa397 100755 --- a/scripts/bench.pl +++ b/scripts/bench.pl @@ -22,23 +22,22 @@ use warnings; # Generate a benchmark source file for a given input. if (@ARGV < 2) { - die "Usage: bench.pl [parameter types] [return type]" + die "Usage: bench.pl [parameter types] [return type]" } my $arg; my $func = $ARGV[0]; -my $iters = $ARGV[1]; my @args; my $ret = "void"; my $getret = ""; my $retval = ""; -if (@ARGV >= 3) { - @args = split(':', $ARGV[2]); +if (@ARGV >= 2) { + @args = split(':', $ARGV[1]); } -if (@ARGV == 4) { - $ret = $ARGV[3]; +if (@ARGV == 3) { + $ret = $ARGV[2]; } my $decl = "extern $ret $func ("; @@ -88,6 +87,5 @@ if ($ret ne "void") { print "#define BENCH_FUNC(j) ({$getret CALL_BENCH_FUNC (j);})\n"; -print "#define ITER $iters\n"; print "#define FUNCNAME \"$func\"\n"; print "#include \"bench-skeleton.c\"\n"; -- cgit v1.2.3