除了以下内容之外,是否有其他方法/软件可以给出执行用Swift编写的代码块所需的准确时间?
let date_start = NSDate() // Code to be executed println("\(-date_start.timeIntervalSinceNow)")
如果您只想为代码块提供独立的计时功能,则可以使用以下Swift助手功能:
func printTimeElapsedWhenRunningCode(title:String, operation:()->()) { let startTime = CFAbsoluteTimeGetCurrent() operation() let timeElapsed = CFAbsoluteTimeGetCurrent() - startTime print("Time elapsed for \(title): \(timeElapsed) s.") } func timeElapsedInSecondsWhenRunningCode(operation: ()->()) -> Double { let startTime = CFAbsoluteTimeGetCurrent() operation() let timeElapsed = CFAbsoluteTimeGetCurrent() - startTime return Double(timeElapsed) }
前者将注销给定代码段所需的时间,后者将返回该时间作为浮点数。作为第一个变体的示例:
printTimeElapsedWhenRunningCode(title:"map()") { let resultArray1 = randoms.map { pow(sin(CGFloat($0)), 10.0) } }
将注销类似:
map()经过的时间:0.0617449879646301 s
请注意,Swift基准测试会根据您选择的优化级别而有很大差异,因此这仅对Swift执行时间的相对比较有用。即使这样,也可能会在每个beta版本的基础上发生变化。