Swift枚举器和GNU查找之间的差异

时间:2016-10-12 09:45:55

标签: find swift3 performance-testing nsfastenumeration

出于好奇,我在Swift中编写了一个GNU find - 仿真器,并且偶然发现了这个时间差异:

$ 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)
}

为什么Swift的enumerator比GNU find慢得多?有没有办法加速Swift代码达到与find类似的速度?

0 个答案:

没有答案