Несоответствие между перечислителем Swift и GNU find
Я написал GNU find
Подобный эмулятор в Swift из любопытства наткнулся и на этот раз несоответствие:
$ time find / &>/dev/null
real 1m6.040s
$ time swiftly-find /
real 5m43.028s
Код Swift выглядит следующим образом:
let enumeration = FileManager.default.enumerator(at: URL(string: "\(from)/")!, includingPropertiesForKeys: nil, errorHandler: { (at: URL, with: Error) in
print("Error \(with) encountered at directory \(at)"); return true
})!
var list = String()
for i in enumeration {
let result = String(describing: i).replacingOccurrences(of: "file://", with: "")
list.append("\(result)\n")
print(result)
}
Почему Свифт enumerator
так значительно медленнее, чем GNU find
? Есть ли способ ускорить код Swift для достижения таких же скоростей, как find
?