Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在Xcode中设置性能测试的最大值_Ios_Swift_Xcode_Performance_Performance Testing - Fatal编程技术网

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

Ios 如何在Xcode中设置性能测试的最大值,ios,swift,xcode,performance,performance-testing,Ios,Swift,Xcode,Performance,Performance Testing,当我在XCode中运行性能测试用例时,我可以设置基线。如果测量结果与基线不同,则会失败 基线是1秒。在以下情况下,测试用例将失败: 测量值为1.5秒 测量值为0.5秒 我希望看到失败,以防测量速度低于基线(情况1.5秒)。如果更快(案例0.5秒),我很高兴看到绿色的测试案例。 有没有办法做到这一点?指定最大值而不是基线?要回答这个问题,我们必须了解XCodeTest的性能测试。本质上,测试将在完整测试运行期间记录以下两个属性: 10次试运行测量的平均结果 这些测试运行的标准偏差(指示测量范

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

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

  • 测量值为1.5秒

  • 测量值为0.5秒

我希望看到失败,以防测量速度低于基线(情况1.5秒)。如果更快(案例0.5秒),我很高兴看到绿色的测试案例。
有没有办法做到这一点?指定最大值而不是基线?

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

  • 10次试运行测量的平均结果
  • 这些测试运行的标准偏差(指示测量范围)
(自动计算的)基线是从以前的测试运行中指定的,如果不满足以下两个条件之一,测试将失败:

  • 测试运行期间的平均值不得比给定的基线平均值增加10%以上(其中基线平均值是每个配置的并存储在源中)
  • 标准偏差不得超过给定的百分比,例如平均值的
    max\u STDDEV%
    。默认值
    max\u STDDEV
    设置为10%,可在性能结果GUI弹出窗口中更改
  • 根据上述规则,我们认识到,当运行“太快”时,您的测试似乎失败的原因并不是因为通过了特定的下限值(0.5s),而是因为测量范围变得太大,未能达到上述标准偏差条件2.

    尝试弥补这一点的一个不太好的方法是增加测量允许的最大标准偏差值(
    max\STDDEV
    ),但这是有风险的,因为仅依赖平均条件1。将允许通过测试,即使是在以下情况下(平均值等于基线(1)),但性病发展率高达40%

    (下图为WWDC 2014年会议第一次参考)

    在性能测试方面,您希望确保测试具有某种确定性的实现和算法,这样测试的目的可能是发现破坏性能的语言/API更新或新的代码实现。如果您的测试场景确实与上面的场景相同,那么在仔细考虑之后,in可能适合仔细查看,并可能提高最大允许标准偏差。例如,对于随机算法,允许存在较大的标准偏差,更多地依赖于平均性能。然而,危险测试(例如具有大允许stddev的随机算法)是,只有10次测试可能不足以捕获性能损失

    另见:

    • (见溪流或河流)

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

        • 10次试运行测量的平均结果
        • 这些测试运行的标准偏差(指示测量范围)
        (自动计算的)基线是从以前的测试运行中指定的,如果不满足以下两个条件之一,测试将失败:

      • 测试运行期间的平均值不得比给定的基线平均值增加10%以上(其中基线平均值是每个配置的并存储在源中)
      • 标准偏差不得超过给定的百分比,例如平均值的
        max\u STDDEV%
        。默认值
        max\u STDDEV
        设置为10%,可在性能结果GUI弹出窗口中更改
      • 根据上述规则,我们认识到,当运行“太快”时,您的测试似乎失败的原因并不是因为通过了特定的下限值(0.5s),而是因为测量范围变得太大,未能达到上述标准偏差条件2.

        尝试弥补这一点的一个不太好的方法是增加测量允许的最大标准偏差值(
        max\STDDEV
        ),但这是有风险的,因为仅依赖平均条件1。将允许通过测试,即使是在以下情况下(平均值等于基线(1)),但性病发展率高达40%

        (下图为WWDC 2014年会议第一次参考)

        在性能测试方面,您希望确保测试具有某种确定性的实现和算法,这样测试的目的可能是发现破坏性能的语言/API更新或新的代码实现。如果您的测试场景确实与上面的场景相同,那么在仔细考虑之后,in可能适合仔细查看,并可能提高最大允许标准偏差。例如,对于随机算法,允许存在较大的标准偏差,更多地依赖于平均性能。然而,危险测试(例如具有大允许stddev的随机算法)是,只有10次测试可能不足以捕获性能损失

        另见:

        • (见溪流或河流)