【问题标题】:rusage() measured in seconds or millseconds?usage() 以秒还是毫秒为单位?
【发布时间】:2009-09-28 01:26:58
【问题描述】:

您好,我正在尝试获取 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);

这是我得到的结果示例。我有几秒钟的时间,但我不太确定

#   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

【问题讨论】:

    标签: timer getrusage rusage


    【解决方案1】:

    你得到的不是秒、毫秒或微秒——你得到的是struct timeval。这是一个由两个字段组成的结构:tv_sec 给出整秒,tv_usec 给出微秒;后一个值小于一百万(因此它始终是几分之一秒)。

    所以这个API支持的分辨率是微秒;你应该在你的打印语句中使用的单位是秒 - 所以你已经正确地做到了。

    【讨论】:

      猜你喜欢
      • 2019-02-24
      • 2014-07-04
      • 2012-03-26
      • 1970-01-01
      • 2014-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多