diff --git a/APP_Framework/Applications/benchmark/support/benchmark.c b/APP_Framework/Applications/benchmark/support/benchmark.c index 99842566f..b47d2f2fc 100644 --- a/APP_Framework/Applications/benchmark/support/benchmark.c +++ b/APP_Framework/Applications/benchmark/support/benchmark.c @@ -96,7 +96,18 @@ void organize_result(const benchmark_handle *handle, clock_t start_time, } } -void *print_result(void *g_time_diff) { +void print_result() { + int i = 0; + while (bmh_list[i].handle != NULL) { + printf("[BENCHMARK] Time Cost: %-15s %.4f\n", bmh_list[i].name, + bmh_list[i].time); + i++; + } +} + +void *print_result_asyn(void *g_start_time) { + clock_t g_stop_time = 0; + stop_trigger(&g_stop_time); int i = 0; while (bmh_list[i].handle != NULL) { printf("[BENCHMARK] Time Cost: %-15s %.4f\n", bmh_list[i].name, @@ -104,7 +115,8 @@ void *print_result(void *g_time_diff) { i++; } printf("[BENCHMARK] Global Time Diff: %f\n", - (float)(*(clock_t *)g_time_diff / (10 * TICK_PER_SECOND))); + (float)((g_stop_time - *(clock_t *)g_start_time) / + (10 * TICK_PER_SECOND))); }; int done_cnt = 0; @@ -153,7 +165,7 @@ void *run_benchmark_parallel(void *args) { benchmark_handle *cur_handle = head.next; - clock_t g_start_time = 0, g_stop_time = 0; + clock_t g_start_time = 0; start_trigger(&g_start_time); while (NULL != cur_handle) { assert(cur_handle->handle.magic_number != MAGIC_NUMBER); @@ -162,12 +174,10 @@ void *run_benchmark_parallel(void *args) { cur_handle = cur_handle->next; } - stop_trigger(&g_stop_time); - clock_t g_time_diff = g_stop_time - g_start_time; case_attr.schedparam.sched_priority = 23; case_attr.stacksize = 4096; - PrivTaskCreate(&res_thread, &case_attr, print_result, &g_time_diff); + PrivTaskCreate(&res_thread, &case_attr, print_result_asyn, &g_start_time); return NULL; } @@ -206,7 +216,7 @@ void *run_benchmark_sequential(void *args) { stop_trigger(&g_stop_time); clock_t g_time_diff = g_stop_time - g_start_time; - print_result(&g_time_diff); + print_result(); printf("[BENCHMARK] Global Time Diff: %f\n", (float)((g_stop_time - g_start_time) / (10 * TICK_PER_SECOND))); }