gpt4 book ai didi

ios - 如何在 Xcode 中设置性能测试的最大值

转载 作者:行者123 更新时间:2023-11-28 10:59:26 24 4
gpt4 key购买 nike

当我在 XCode 中运行我的性能测试用例时,我可以设置基线。如果测量值与基线不同,它将失败。

例如。基线是 1 秒。在以下情况下测试用例将失败:

  • 测量是 1.5 秒

  • 测量是0.5秒

我希望看到失败,以防万一测量速度比基线慢(案例 1.5 秒)。如果它更快(案例 0.5 秒)我很高兴并且我希望看到绿色测试用例。有什么办法吗?指定的不是基线而是最大值?

最佳答案

要回答这个问题我们必须了解XCodeTest的性能测试。实质上,测试将在完整测试运行期间将以下内容记录到两个属性:

  • 10 次测试运行测量的平均结果
  • 这些测试运行的标准偏差(表示测量值的分布)

(自动计算的)基线是从以前的测试运行中指定的,如果不满足两个条件中的任何一个,测试将失败:

  1. 测试运行的平均值与给定的基线平均值相比不应增加超过 10%(其中基线平均值是按配置并存储在源代码中的)。
  2. 标准偏差不得超过给定的百分比,例如平均值的 max_STDDEV%。值 max_STDDEV 默认设置为 10%,可以在性能结果 GUI 弹出窗口中更改。

从上面的规则,我们意识到你的测试在运行“太快”时看似失败的原因不是由于传递了特定的下限值(0.5s),而是传播 的测量值变得太大,无法满足上述标准偏差条件 2.

尝试弥补这一点的一个不太好的方法是增加允许的最大测量标准偏差值 (max_STDDEV),但这是有风险的,因为仅依赖于平均条件 1. 将允许测试通过,例如以下场景(平均值等于基线 (1),但具有 40% 的大标准偏差)。

Large STDDEV(图片来自下方第一个引用资料,WWDC 2014 session )

在性能测试方面,您要确保测试具有一定确定性的实现和算法,这样测试的目的可能是发现破坏性能的语言/API 更新或新代码实现。如果你的测试场景确实如上,那么在仔细考虑一下,可能会适当提高最大允许标准偏差,仔细考虑。例如。对于随机算法,可以允许较大的标准偏差,更多地依赖于平均性能。危险测试,例如然而,具有较大允许标准差的随机算法的缺点是只有 10 次测试可能不足以捕获性能损失。

另见:

关于ios - 如何在 Xcode 中设置性能测试的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41506401/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com