对于某人所做的每一次代码更改,我都会在我们的软件上运行一套大约 2000 多个性能测试(并且对于每个测试,我收集 5 到 10 个样本)。我有数千次代码更改的性能结果历史记录。
当有人更改代码导致测试运行变慢时,我想尽快被告知(尽管我可以等待另外 1 或 2 次代码更改的结果)。
这就是问题的要点。
这些测试中存在一些自然变化,我们会看到偶尔出现的尖峰,这只是噪音,可能是因为计算机上的某些后台进程正在做一些事情,导致这次测试运行得更慢。由于这些原因,我不想在测试运行速度变慢时收到通知。我知道仍然会有一些 I 类错误,但我想尽量减少它。
几乎所有代码更改都对性能没有实际影响,而那些确实影响特定子集的测试。
但是因为基本上我们历史中的任何代码更改都可能改变了平均值/标准偏差/无论如何,使用该历史似乎是不稳定的。
但我的问题似乎不能完全独一无二。我有什么选择?
这是一个测试如何随时间执行的图表。y 轴代表测试所用的时间(越低越好),x 轴是我们的每个代码随时间从最旧到最新的变化。早期的大跌应该被称为真正的进步,而当它回升时,那是真正的损失。同样在图表的末尾,这是一个真正的损失,然后是一个真正的收益。不应调用所有其他光点。
我在多个地方问过这个问题,但从未得到任何真正的答案。我将编写所有的分析,我愿意使用任何工具,做任何研究,学习任何对我有帮助的统计方法。这不可能是一个独特的问题。那么人们如何处理它(除了手动查看结果)?