2012-03-24 82 views
0

这可能是最愚蠢的问题,但我在网上找不到任何关于它的事情,而且我正处于睡眠边缘的一部分。如何计算Unix中的等待时间? (基于/ usr/bin/time)

无论如何,我假设它必须采取一些措施,包括总耗时/挂钟时间,以及减去用户和系统时间。 IE,挂墙时间为10秒,系统时间为2,用户为1,意味着等待时间为7秒。

我很想得到一个肯定的答案,而不是用这个基于我的直觉的猜测。

+0

如果多个CPU正在执行代码,则CPU时间可能会大于已用时间。例如,两个100%工作1秒的处理器将会经过1秒钟,2秒钟的用户CPU。 – 2012-03-24 06:33:33

+0

我正在使用的实例表明不然。如果是这样,那么没有一个通用的公式吗?有人告诉我,我可以计算等待时间与墙上的时间。 – 2012-03-24 06:54:09

回答

0

该公式似乎是exactly as you surmised,与上面提出的警告。

由于/usr/bin/time测量(根据the documentation),你需要采取的CPU能够执行代码,考虑到数量CPU-seconds其用户和系统处理时间。对于大多数简单的单线程应用程序,使用一个CPU作为估计值是合理的。*在这些情况下,可以容忍地使用CPU时间作为挂钟时间的替代品。

对于其他人而言,它取决于程序预计达到的最大CPU饱和度,这超出了time可以告诉您的范围。


  *某些处​​理器级的特质具有增强的并行性和投机性分支的执行使这个技术上不准确的,但它是否则合理的估计。

+0

感谢您的链接和详尽的解释! – 2012-03-24 07:10:35

+0

@ LOL.NO。乐意效劳。 :) – MrGomez 2012-03-24 07:11:12