时间(Linux 程序)可以测量多短的时间?

时间(Linux 程序)可以测量多短的时间?

我只是想知道限制time是多少。我有一个程序总是需要 20 毫秒,所以我假设这是它可以测量的最低值,但我想看看是否有某种文档记录。

答案1

它可以测量的最短时间间隔是 1 jiffy,它是内核构建选项 (CONFIG_HZ) 中指定的频率的倒数。

答案2

我同意 Ignacio 的回应,但我认为它忽略了一个关键点。虽然理论上 jiffy 是它可以测量的最小单位,但有时非常短的持续时间是不准确的,因为底层硬件不会如此快速地测量时间变化。根据我的经验,任何小于一毫秒的时间都无法准确地与其他时间进行比较(尽管这个数字可能高达 5 或 10 毫秒)。如果您试图对特定操作或程序进行基准测试,请考虑让它运行数百或数千次,然后将总时间除以迭代次数以找到更准确的值。

答案3

尝试这个:

gcc -o timetest -x c - <<< "int main() {}"; time ./timetest

在我的(又旧又慢的)系统上,后续运行:

time ./timetest

最快可完成:

real    0m0.005s
user    0m0.004s
sys     0m0.000s

相关内容