0

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

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

4

1 回答 1

2

time应该测量挂墙时间。即,它给出了当前时间,不管你的进程运行了多少。

如果你想测量 cpu 时间,你应该使用clock它(尽管一些供应商,如 MS 实现它错误,所以它也做 wall time)。

当然,还有其他工具可以检索 CPU 使用率,例如times在类 Unix 系统或GetProcessTimesWindows 上。尽管便携性降低,但大多数人发现这些更有用。

于 2012-06-26T00:01:59.453 回答