Avatar ·

Swift Beta中数组排序性能:为何如此缓慢以及如何加速?

大家好!我刚开始学习Swift,在Xcode 6 Beta中对数组排序时遇到了一个非常奇怪的问题。 我有一个简单的整数数组,想按降序排序。写了这样的代码: ```swift var numbers = [9, 3, 5, 1, 8, 2, 7, 4, 6] numbers.sort { $0 > $1 } ``` 看起来逻辑没问题。但当我用大数组(比如100,000个元素)运行这段代码时,排序花了很长时间——大约4-5秒!而如果用Objective-C的`sortedArrayUsingComparator:`做同样的事,瞬间就完成了(不到0.1秒)。 我尝试了不同的方式: 1. `numbers.sort(>)` — 同样慢。 2. `numbers.sorted(by: >)` — 返回新数组,但也很慢。 3. 甚至简单的`numbers.sort()`不带闭包 — 仍然慢。 问题可能出在哪里?这是beta版本的bug还是我做错了什么?是不是需要开启某些编译器优化?对Swift的性能非常失望。