time()和上下文切换

时间:2012-06-25 23:55:40

标签: c

我或多或少想知道如何在C标准库中实现time()以及在下面描述的情况下会发生什么。虽然这个时间最可能可以忽略不计,但考虑一下你有一个时间硬限制并且无法控制CPU调度程序的情况(假设它是通用CPU的“好”调度程序)。

现在,如果我使用time()来计算特定代码段的执行时间并使用从某个最大界限中减去的时间来确定其他一些与时间相关的变量,那么该变量将如何根据上下文切换?我知道我们可以使用nice和其他工具(即自定义调度程序等)来确定我们在需要时获得完整的CPU使用率,但是,我想知道它是如何工作的,因为类似的情况如此和由于系统的选择,存在哪些副作用。

1 个答案:

答案 0 :(得分:2)

time应该衡量壁垒时间。即,无论您的流程运行多少,它都会给出当前时间。

如果你想测量cpu时间,你应该使用clock代替(虽然某些供应商如MS实现它错误,所以它也会花费时间)。

当然,还有其他工具可以检索CPU使用情况,例如类似Unix的系统上的times或Windows上的GetProcessTimes。尽管可移植性降低,但大多数人发现这些更有用。