我太快算不上jiffies了吗?

时间:2012-05-01 02:10:05

标签: c++ linux procfs

我在不同的数据库系统上做了一些本地实验。我在执行查询之前和之后从/proc/status收集(总结)CPU信息。区别应该告诉我查询运行时期间的jiffies或USER_HZ的数量。但是当(根据clock_gettime())查询的运行时间低于0.001 seconds时,差异为零。这是为了快速利用CPU信息还是我遗漏了别的东西?

1 个答案:

答案 0 :(得分:1)

从Linux内核2.6.0开始,jiffy是1/250秒,或0.004秒[见time(7)]。你永远不会得到比这更小的分辨率。

我建议您使用rdtsc指令,该指令可能作为编译器内在函数提供。这会每1个CPU滴答一次递增,因此除以频率,您就可以获得通过的时间量。您也可以实现它with inline assembly

检查/proc/status实际上有点荒谬,因为打开文件描述符和读取内容的可能性实际上比查询执行时间要长。 rdtsc更可靠。