在Unix中如何计算等待时间?(基于/usr/bin/time)

在Unix中如何计算等待时间?(基于/usr/bin/time),time,wait,Time,Wait,这可能是最愚蠢的问题,但我在网上找不到任何关于它的信息,而且我有一部分快要睡着了 不管怎么说,我假设它要做的是计算总的运行时间/墙时间,然后减去用户和系统时间。也就是说,墙时间是10秒,系统时间是2秒,用户是1秒,这意味着等待时间是7秒 我希望得到一个肯定的答案,而不是根据我的直觉来使用/猜测这个答案。这个公式似乎与上面提到的警告相符 由于/usr/bin/time根据度量其用户和系统处理时间,因此需要考虑能够执行代码的CPU数量。对于大多数简单的单线程应用程序,使用一个CPU作为估计值是合理的

这可能是最愚蠢的问题,但我在网上找不到任何关于它的信息,而且我有一部分快要睡着了

不管怎么说,我假设它要做的是计算总的运行时间/墙时间,然后减去用户和系统时间。也就是说,墙时间是10秒,系统时间是2秒,用户是1秒,这意味着等待时间是7秒

我希望得到一个肯定的答案,而不是根据我的直觉来使用/猜测这个答案。

这个公式似乎与上面提到的警告相符

由于/usr/bin/time根据度量其用户和系统处理时间,因此需要考虑能够执行代码的CPU数量。对于大多数简单的单线程应用程序,使用一个CPU作为估计值是合理的。*在这些情况下,您可以使用CPU时间来代替挂钟时间

对于其他人来说,这取决于程序预期达到的最大CPU饱和,这超出了时间可以告诉您的范围


*具有增强并行性和推测性分支执行的某些处理器级特性使得这在技术上不准确,但在其他方面,这是一个合理的估计。

如果有多个CPU执行代码,CPU时间可能大于运行时间。例如,两个100%工作1秒的处理器将提供1秒的运行时间,2秒的用户CPU。我正在使用的实例表明不是这样。如果是这样的话,有没有一般的公式?有人告诉我,我可以用墙的时间来计算等待时间。谢谢你的链接和详细的解释!