我每天都在进行单目的性能测试。目前,我对每个测试进行了3次测试并取平均值。但是我每天都有起伏,这使得很难确定这是否是由于代码更改引起的。

在统计学上衡量和计算性能的适当方法是什么?

评论

也许您应该提供有关测试程序的更多详细信息。您可能要使用现有的工具。

#1 楼

您需要做的第一件事就是隔离可能干扰系统的内容。使其尽可能独立。越少的后台进程,额外的硬件和软件以及您可以获得的网络流量就越好。有时,最好是在晚上知道某个其他操作的时候运行这些批处理作业,这是一个好主意。

我想到的最好的统计方法是标准偏差。使用一组历史数据,您应该能够获取均值和标准差。如果您得到的结果与均值(通常称为3-sigma或6-sigma)相差超过3或6 stddevs,则说明您有明显不同。

我确信您可以简单地在excel中弹出值并获取stddev结果。

评论


我要添加的是:尝试运行每个测试更多次(例如100-200)-更多测试意味着更多的测量结果,这意味着结果波动较小。

– alexb
2011年5月10日下午14:54

@alexb当然可以同意(只要您试图衡量性能,而不是功能。)实际上,多次运行测试不仅可以为平均值提供更好的指示:它可能会导致性能下降和内存泄漏否则您将找不到。

–corsiKa♦
2011年5月10日15:31

如果可能,还应考虑延长测试时间,这将有助于平均结果并降低差异。

–Rsf
2012年12月6日14:18

#2 楼

除了corsiKa所说的之外,您可能还想进行3次以上的性能测试。如果您由于磁盘未准备好或发生了一些故障而出现异常值,则会大大降低平均值。对于我的团队来说,当我们要测试诸如完成操作所需的平均时间之类的东西时,我们将以用户希望的方式运行一百次左右的操作,然后平均该时间。如果您使测试自动化,这是最容易的,因此您可以安排测试在晚上运行一个小时左右,并在早上进行测试。