我目前正在开展一个项目,试图确定不同排序算法对不同大小的数组进行排序所需的时间。为了测量时间,我决定在 Swift Playgrounds 中使用 XCTest,因为它可以自动执行多次运行算法并将其平均化的过程。但是我对这种方法有疑问,因为我必须以 5 个元素的间隔(即 15 个元素、20 个元素、25 个元素......)测试从 15 个元素到 1500 个左右的各种数组大小。
我能够通过一个测试做到这一点的唯一方法是具有不同大小的多个功能并测量性能。这是一个示例:
class insertionSortPerformanceTest: XCTestCase {
func testMeasure10() {
measure {
_ = insertionSort(arrLen: 10)
}
}
func testMeasure15() {
measure {
_ = insertionSort(arrLen: 15)
}
}
func testMeasure20() {
measure {
_ = insertionSort(arrLen: 20)
}
}
}
insertionSort()
通过生成一个长度数组arrLen
并用随机数填充它来工作。
有没有办法以某种方式自动化这个过程?
另外,有没有办法在控制台中获取输出并将其保存为字符串,以便稍后解析它以获取相关信息?