Beispiel #1
0
static void
single_run (void)
{	const int max_channels = 10 ;
	int k ;

	printf ("\n    CPU name : %s\n", get_cpu_name ()) ;

	puts (
		"\n"
		"    Converter                        Channels    Duration      Throughput\n"
		"    ---------------------------------------------------------------------"
		) ;

	for (k = 1 ; k <= max_channels / 2 ; k++)
		throughput_test (SRC_SINC_FASTEST, k, 0) ;

	puts ("") ;
	for (k = 1 ; k <= max_channels / 2 ; k++)
		throughput_test (SRC_SINC_MEDIUM_QUALITY, k, 0) ;

	puts ("") ;
	for (k = 1 ; k <= max_channels ; k++)
		throughput_test (SRC_SINC_BEST_QUALITY, k, 0) ;

	puts ("") ;
	return ;
} /* single_run */
Beispiel #2
0
void main_test(){
    //Initialize parameters to be tested
    uint32_t time_interval[] = {80,75,70,65,60,57,55,52,50,47,45,42,40,37,35,32,30,27,25,20,15,10};
    uint32_t key_len[5] = {4,8,16,32,64};
    uint32_t value_len[9] = {8,16,32,64,128,256,512,1024};
    uint32_t hash[2] = {0,1};
    double ops_comb[4][2] = {
        {0.6,0.05},
        {0.05,0.6},
        {0.6,0.35},
        {0.35,0.6}
    };
    
    //Set default values of these parameters
    const uint32_t normal_key = 16;
    const uint32_t normal_value = 128;
    const uint32_t normal_hash = 1;
    const double normal_get = 0.6;
    const double normal_set = 0.05;
    const uint32_t time_interval_list_len = (uint32_t)(sizeof(time_interval)/sizeof(uint32_t));
    //Test each input bundle
    for (uint32_t i=0;i<5;i++){
        throughput_test(time_interval, time_interval_list_len, key_len[i], normal_value, normal_hash, normal_get,normal_set);
    }
    for (uint32_t i=0;i<9;i++){
        throughput_test(time_interval, time_interval_list_len, normal_key, value_len[i], normal_hash, normal_get,normal_set);
    }
    
    for (uint32_t i=0;i<2;i++){
        throughput_test(time_interval, time_interval_list_len, normal_key, normal_value, hash[i], normal_get,normal_set);
    }
    for (uint32_t i=0;i<4;i++){
        throughput_test(time_interval, time_interval_list_len, normal_key, normal_value, normal_hash, ops_comb[i][0],ops_comb[i][1]);
    }
}
Beispiel #3
0
static void
multi_run (int run_count)
{	int k, ch ;

	printf ("\n    CPU name : %s\n", get_cpu_name ()) ;

	puts (
		"\n"
		"    Converter                        Channels    Duration      Throughput    Best Throughput\n"
		"    ----------------------------------------------------------------------------------------"
		) ;

	for (ch = 1 ; ch <= 5 ; ch++)
	{	long sinc_fastest = 0, sinc_medium = 0, sinc_best = 0 ;

		for (k = 0 ; k < run_count ; k++)
		{	sinc_fastest =		throughput_test (SRC_SINC_FASTEST, ch, sinc_fastest) ;
			sinc_medium =		throughput_test (SRC_SINC_MEDIUM_QUALITY, ch, sinc_medium) ;
			sinc_best =			throughput_test (SRC_SINC_BEST_QUALITY, ch, sinc_best) ;

			puts ("") ;

			/* Let the CPU cool down. We might be running on a laptop. */
			sleep (10) ;
			} ;

		puts (
			"\n"
			"    Converter                        Best Throughput\n"
			"    ------------------------------------------------"
			) ;

		printf ("    %-30s    %10ld\n", src_get_name (SRC_SINC_FASTEST), sinc_fastest) ;
		printf ("    %-30s    %10ld\n", src_get_name (SRC_SINC_MEDIUM_QUALITY), sinc_medium) ;
		printf ("    %-30s    %10ld\n", src_get_name (SRC_SINC_BEST_QUALITY), sinc_best) ;
		} ;

	puts ("") ;
} /* multi_run */