swift 中的性能测试冒泡排序需要很长时间

Performance test bubble sort in swift takes ages

我正在编写几个性能基准测试,主要是为了比较跨平台工具的性能。其中之一是 Swift.
中冒泡排序的本机实现 我已经实现如下:

do{
    swapped = false
    for (var i = 1; i < testSize; i++){
        if (sortArray[i-1] > sortArray[i]){
            temp = sortArray[i-1]
            sortArray[i-1] = sortArray[i]
            sortArray[i] = temp
            swapped = true
        }
    }
}while(swapped == true)

运行 对于 2500 的数组,这在 iphone 4s 上花费了将近 20 秒。
这慢得可笑。我已经使用 cordova (javascript) 实现了相同的代码,只需要 2 秒。
我还在 2012 年的 objective c 测试中发现了相同测试的结果,当时的本地时间约为 0.6 秒。
进行输入验证基准测试也返回了可比较的结果。

现在我正试图找出这是为什么。
是不是我执行的不对?
还是 Swift 尚未针对此类操作进行优化?
或者仅仅是因为 Swift 没有针对 iPhone 4s 等旧设备进行优化?
还是还是别的东西?

通过在构建设置中设置编译器优化来启用所有优化:

共有三种不同的优化选项:

              None [-Onone] no optimizations, the default for debug.
           Fastest [-O] perform optimizations, the default for release.
Fastest, Unchecked [-Ounchecked] perform optimizations and disable runtime overflow checks and runtime type checks.

执行速度测试时应选择 -O,仅当检查每个可能的数组索引和溢出时才应使用 -Ofast

显然我犯了一个愚蠢的错误,设置了错误的优化。 LLVM 的优化排在列表的前面,所以当我寻找优化时,不幸的是我最终设置了那个。

我应该做的只是使用搜索功能查找 "optimization",它会显示所有可能的优化。
之后,它只是将 Swift 代码生成的优化设置为 Fastest[-O] 以获得我期望的性能