Tes*_*tor 1 performance xcode performance-testing ios swift
当我在 XCode 中运行性能测试用例时,我可以设置基线。如果测量结果与基线不同,它将失败。
例如。基线是 1 秒。在以下情况下测试用例将失败:
测量时间为 1.5 秒
测量时间为 0.5 秒
我希望看到失败,以防万一测量速度慢于基线(情况 1.5 秒)。如果它更快(例如 0.5 秒),我很高兴,我想看到绿色测试用例。有什么办法可以做到这一点吗?不指定基线而是指定最大值?
要回答这个问题我们必须了解XCodeTest的性能测试。本质上,测试将在完整测试运行期间将以下内容记录到两个属性:
(自动计算的)基线是从先前的测试运行中指定的,如果不满足两个条件中的任何一个,测试将失败:
max_STDDEV%平均值。默认情况下,该值max_STDDEV设置为 10%,可以在性能结果 GUI 弹出窗口中进行更改。从上面的规则中,我们意识到,当运行“太快”时,您的测试看似失败的原因并不是由于通过了特定的下限值(0.5s),而是由于测量的范围变得太大,导致测试失败。标准偏差条件2.同上。
尝试弥补这一问题的一种不太好的方法是增加测量的允许最大标准偏差值 ( max_STDDEV),但这是有风险的,因为仅依赖平均条件1.即使在以下情况下也将允许测试通过(平均值等于基线 (1),但标准差较大,为 40%)。
在性能测试方面,您需要确保测试具有一定确定性的实现和算法,这样测试的目的可能是发现破坏性能的语言/API 更新或新的代码实现。如果您的测试场景确实如上述情况,那么可能需要仔细检查一下,并在仔细考虑后可能会提高最大允许标准偏差。例如,对于随机算法,可以允许较大的标准偏差,更多地依赖于平均性能。然而,危险的测试(例如具有较大允许 stddev 的随机算法)是,仅可能进行 10 次测试,不足以捕获性能损失。
也可以看看:
| 归档时间: |
|
| 查看次数: |
1218 次 |
| 最近记录: |