CSL_CDECL struct csl_common_timer_result csl_common_test_timer_i1( void (*test_function)(int), int param ) { struct csl_common_timer_result rs; struct timeval start; int loop = 2; int i = 0; size_t nl = 0; double ela = 0.0; gettimeofday( &start,NULL ); while( (ela = calc_elapsed(&start)) < MAX_SAMPLING_INTERVAL_MS ) { for( i=0;i<loop;++i ) { test_function(param); nl++; } loop *= 2; } rs.n_loops = nl; rs.total_ms = ela; rs.ms_per_call = ela/(double)nl; rs.call_per_sec = nl*1000.0/ela; return rs; }
bool elapsed(unsigned int time_millis) { return calc_elapsed() >= time_millis; }