Timer rusage()以秒或毫秒为单位?
嗨,我正在尝试获取由shell分叉的应用程序的系统时间和用户时间。我只是不知道我得到了什么样的时间,秒?毫秒?有人知道吗Timer rusage()以秒或毫秒为单位?,timer,getrusage,rusage,Timer,Getrusage,Rusage,嗨,我正在尝试获取由shell分叉的应用程序的系统时间和用户时间。我只是不知道我得到了什么样的时间,秒?毫秒?有人知道吗 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); 这是我得到的结果样本。我有秒
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
您得到的不是秒、毫秒或微秒,而是
struct timeval
。这是一个由两个字段组成的结构:tv_-sec
给出整秒,tv_-usec
给出微秒;后者的值小于一百万(因此它始终是一秒钟的一小部分)
所以这个API支持的分辨率是微秒;在print语句中应该使用的单位是秒,因此您已经正确地执行了