diff --git a/Src/jobs.c b/Src/jobs.c index d1b98ac..2710c88 100644 --- a/Src/jobs.c +++ b/Src/jobs.c @@ -690,15 +690,15 @@ printtime(struct timeval *real, child_times_t *ti, char *desc) /* go ahead and compute these, since almost every TIMEFMT will have them */ elapsed_time = real->tv_sec + real->tv_usec / 1000000.0; + long clktck = get_clktck(); #ifdef HAVE_GETRUSAGE user_time = ti->ru_utime.tv_sec + ti->ru_utime.tv_usec / 1000000.0; system_time = ti->ru_stime.tv_sec + ti->ru_stime.tv_usec / 1000000.0; total_time = user_time + system_time; - percent = 100.0 * total_time - / (real->tv_sec + real->tv_usec / 1000000.0); + percent = 100.0 * total_time / elapsed_time; + total_time *= (double) clktck; #else { - long clktck = get_clktck(); user_time = ti->ut / (double) clktck; system_time = ti->st / (double) clktck; percent = 100.0 * (ti->ut + ti->st) @@ -794,7 +794,7 @@ printtime(struct timeval *real, child_times_t *ti, char *desc) #endif #ifdef HAVE_STRUCT_RUSAGE_RU_MAXRSS case 'M': - fprintf(stderr, "%ld", ti->ru_maxrss / 1024); + fprintf(stderr, "%ld", ti->ru_maxrss); break; #endif #ifdef HAVE_STRUCT_RUSAGE_RU_MAJFLT