rusage() измеряется в секундах или миллисекундах?
Привет я пытаюсь получить системное время и время пользователя приложений, которые разветвляются оболочкой. Я просто не уверен, какое время я получаю, секунды? миллисекунды? Кто-нибудь знает?
printf("System time: %ld.%06ld sec\n",usage.ru_stime.tv_sec, usage.ru_stime.tv_usec);
printf("User time: %ld.%06ld sec\n\n",usage.ru_utime.tv_sec, usage.ru_utime.tv_usec);
Это образец результатов, которые я получаю. У меня есть время в секундах, но я не совсем уверен
# PID Name System Time User Time
*****************************************************
1 12420 firefox 0.148009 sec 0.816051 sec
2 12429 gimp 0.444027 sec 2.512157 sec
3 12442 clear 0.000000 sec 0.000000 sec
1 ответ
Вы не получаете ни секунды, ни миллисекунды, ни микросекунды - вы получаете struct timeval
, Это структура, состоящая из двух полей: tv_sec
дает полные секунды, и tv_usec
дает микросекунды; последнее значение меньше одного миллиона (так что оно всегда составляет долю секунды).
Таким образом, разрешение, которое поддерживает этот API, составляет микросекунды; единица измерения, которую вы должны использовать в своем выражении печати, - это секунды, поэтому вы уже делаете это правильно.