为什么clock_gettime如此不稳定?

时间:2011-07-25 10:34:30

标签: linux time profiling

2 个答案:

答案 0 :(得分:5)

使用CLOCK_THREAD_CPUTIME_ID实施rdtsc时,它可能会遇到与此相同的问题。 clock_gettime的手册页说:

  

CLOCK_PROCESS_CPUTIME_ID CLOCK_THREAD_CPUTIME_ID 时钟   在许多平台上实现使用来自CPU的定时器(TSC on   安腾上的i386,AR.ITC)。这些寄存器可能在CPU和CPU之间有所不同   因此,如果a,这些时钟可能会返回伪造结果   进程迁移到另一个CPU。

听起来这可能解释你的问题?也许您应该将进程锁定到一个CPU以获得稳定的结果?

答案 1 :(得分:0)

当你有一个不能消极的高度倾斜的分布时,你会发现均值,中位数和模式之间存在很大的差异。 对于这样的分布,标准差是没有意义的。

对它进行对数转换通常是一个好主意。 这将使它“更正常”。