运行时间测量的分布

时间:2015-02-23 15:45:40

标签: performance distribution measure

如果我们想在现代操作系统上测量运行时间,我们必然会从操作系统调度程序,阻塞IO,后台线程,缓存一致性协议等中获得看似非确定性的噪声。现在,如果我们假设所有这些噪声源都具有有限的均值和方差,我们可以声称通过中心极限定理,运行时间的分布是高斯分布吗?我已经检查了答案:here(作者在那里询问测量应用程序部分的运行时间而不是整个应用程序)并且我得到的答案最接近的是,根据维基百科,伽玛分布是适合建模时间直到死亡。还有其他什么吗?

1 个答案:

答案 0 :(得分:0)

在与同事辩论之后,我们开始同意,查看运行时间的更好方法是假设它们是根据Cauchy分布分布的,Cauchy分布具有未定义(取无限)均值和方差。因此,我们认为外部噪声的有限均值/方差的假设不够健全。这是因为操作系统上的进程可以出于多种原因阻止/死锁/活锁,尽管不太可能,但总是有可能发生这种情况,特别是如果您正在处理复杂的实际生产代码(或者在某些情况下)第三方图书馆),我们不是在谈论玩具示例。现在,许多独立Cauchy分布的总和再次是Cauchy分布,因此我们有一个很好的封闭形式的分布。尽管Cauchy没有定义的均值或方差,但它确实具有明确定义的中位数,因此应该测量中位数。而且,Cauchy有一个像#" scale"参数,其估计可以替代标准差,并且有很多关于如何正确/有效地做到这一点的研究论文。

cauchy on wikipedia

cauchy on wolfram mathworld