Avatar ·

Desempenho da ordenação de arrays no Swift Beta: por que é tão lento e como acelerar?

Olá a todos! Acabei de começar a estudar Swift e me deparei com um problema muito estranho ao ordenar arrays. Estou usando Xcode 6 Beta e notei que a ordenação está muito lenta em comparação com Objective-C. Aqui está um código simples: ```swift var numbers = [Int]() for i in 0..<10000 { numbers.append(Int(arc4random_uniform(1000))) } let start = CFAbsoluteTimeGetCurrent() let sorted = numbers.sorted { $0 < $1 } let end = CFAbsoluteTimeGetCurrent() print("Tempo de ordenação: \(end - start) segundos") ``` Com dados reais (array de 10.000 elementos), a ordenação leva cerca de 0,5-1 segundo, o que é 10 vezes mais lento que o código equivalente em Objective-C. O compilador parece otimizar o código (otimização -O ativada). Tentei diferentes opções: sorted(), sort(), até escrevi minha própria ordenação — o resultado é o mesmo. Será que estou fazendo algo errado? Ou é um bug da versão beta? Existem maneiras de acelerar a ordenação? Desde já, agradeço pela ajuda! <<>>

Causa do desempenho lento