Run liboil benchmark multiple times

The statistics function requires multiple runs, otherwise
it causes a divide by zero error.
This commit is contained in:
David Schleef 2009-05-22 17:31:14 -07:00
parent 528cdedc2b
commit 1dae15d762

View file

@ -1355,6 +1355,7 @@ _benchmark_integer_resampling (void)
OilProfile a, b; OilProfile a, b;
gdouble av, bv; gdouble av, bv;
SpeexResamplerState *sta, *stb; SpeexResamplerState *sta, *stb;
int i;
oil_profile_init (&a); oil_profile_init (&a);
oil_profile_init (&b); oil_profile_init (&b);
@ -1372,29 +1373,21 @@ _benchmark_integer_resampling (void)
return FALSE; return FALSE;
} }
/* Warm up cache */ /* Benchmark */
if (!_benchmark_int_float (sta)) for (i = 0; i < 10; i++) {
goto error; oil_profile_start (&a);
if (!_benchmark_int_float (sta)) if (!_benchmark_int_float (sta))
goto error; goto error;
oil_profile_stop (&a);
}
/* Benchmark */ /* Benchmark */
oil_profile_start (&a); for (i = 0; i < 10; i++) {
if (!_benchmark_int_float (sta)) oil_profile_start (&b);
goto error; if (!_benchmark_int_int (stb))
oil_profile_stop (&a); goto error;
oil_profile_stop (&b);
/* Warm up cache */ }
if (!_benchmark_int_int (stb))
goto error;
if (!_benchmark_int_int (stb))
goto error;
/* Benchmark */
oil_profile_start (&b);
if (!_benchmark_int_int (stb))
goto error;
oil_profile_stop (&b);
/* Handle results */ /* Handle results */
oil_profile_get_ave_std (&a, &av, NULL); oil_profile_get_ave_std (&a, &av, NULL);