Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.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
Swift Xcode性能测试用例_Swift_Xcode_Performance Testing_Standard Deviation - Fatal编程技术网

Swift Xcode性能测试用例

Swift Xcode性能测试用例,swift,xcode,performance-testing,standard-deviation,Swift,Xcode,Performance Testing,Standard Deviation,我有下面几行代码需要测试性能标准。但不幸的是,苹果的文件并没有帮助我们对这一点有一个清晰的认识 func addStrings() { let maxCount = 100000 var array:Array<String> = Array() for _ in 0..<maxCount { array.append("Test") } } 从结果来看,第一个值似乎比平均值(0.0611s)增加了21.3%。但是其他属性意味着

我有下面几行代码需要测试性能标准。但不幸的是,苹果的文件并没有帮助我们对这一点有一个清晰的认识

func addStrings() {
    let maxCount = 100000
    var array:Array<String> = Array()
    for _ in 0..<maxCount {
        array.append("Test")
    }
}
从结果来看,第一个值似乎比平均值(0.0611s)增加了21.3%。但是其他属性意味着什么呢?我如何将(基线和最大标准偏差)设置为可接受的标准

它如何计算结果是88%更好,什么是+-8%


要建立基线,请运行测试。你“通过”(因为你第一次得到免费通行证)。时间信息被合并。在这一点上,测量结果没有任何意义


然而,从那以后,每次运行测试时,如果与基线的偏差或减速太大,则会失败。如果您的后续测试更好,并且您希望将其设置为新的基线,那么您在屏幕截图中显示的对话框中有一个设置基线按钮,您可以使用该按钮。

但是最大STDDev值应根据什么设置?就像基线一样,我们也可以设置最大STDDev值。哦,我明白您的意思。好吧,你想用什么就用什么。正如我在回答中所说,这是一个值,如果你的标准偏差超过它,它将被视为失败。每个测试运行实际上是多次运行(我认为是十次)。因此,如果它们在最大标准偏差之外相互不一致,那么您将失败。如果你没有理由改变它,别管它。也许你会开始失败,然后说,好吧,这真的不是一个糟糕的运行,让我们增加max-std-dev,让它通过。
func testPerformanceExample() throws {
    // This is an example of a performance test case.
    let strings = StringsCreator()
    self.measure {
        // Put the code you want to measure the time of here.
        strings.addStrings()
    }
}