【发布时间】:2014-08-11 20:16:04
【问题描述】:
我已经对我的算法进行了基准测试,它运行了 1000 次。现在我有了所有时间值,此时知道平均值、标准差、中位数会很有趣。问题是我不知道用来估计这些参数的正确统计数据是什么。我不确定是否使用正态分布。
【问题讨论】:
标签: statistics benchmarking static-analysis
我已经对我的算法进行了基准测试,它运行了 1000 次。现在我有了所有时间值,此时知道平均值、标准差、中位数会很有趣。问题是我不知道用来估计这些参数的正确统计数据是什么。我不确定是否使用正态分布。
【问题讨论】:
标签: statistics benchmarking static-analysis
了解statistics。那里有很多书籍、指南、论文和介绍 (1,2,3, 4)
还有很多实现默认统计方法的库:
还有最后一个提示:为了快速(初始)结果,我经常使用excel 及其图表功能。它支持一些统计方法,您可以使用这些方法来看看您可以继续往哪个方向发展......
【讨论】:
这实际上取决于您的工作负载分配方式,因此您无法笼统地回答这个问题。
但是有一个技巧:如果您向前迈出一步,进行几次迭代,每次迭代由 N 次调用组成,然后计算整个迭代的平均时间/吞吐量。然后,对于大 N 且跨调用一致的工作负载行为,迭代分数可能会受到Central Limit Theorem 的影响,这可以将它们变成正态分布。
【讨论】: