我们如何测量在Swift中运行函数所用的时间?我试图像这样显示经过的时间:“经过的时间是.05秒”。看到in Java,我们可以使用System.nanoTime(),在Swift中是否有任何等效的方法可以实现这一点?
请看一下示例程序:
func isPrime(_ number: Int) -> Bool {
var i = 0;
for i=2; i<number; i++ {
if number % i == 0, i != 0 {
return false
}
}
return true
}
var number = 5915587277
if isPrime(number) {
print("Prime number")
} else {
print("NOT a prime number")
}
发布于 2014-10-27 05:30:41
这是一个基于CoreFoundation
的CFAbsoluteTime
的方便的定时器类。
import CoreFoundation
class ParkBenchTimer {
let startTime:CFAbsoluteTime
var endTime:CFAbsoluteTime?
init() {
startTime = CFAbsoluteTimeGetCurrent()
}
func stop() -> CFAbsoluteTime {
endTime = CFAbsoluteTimeGetCurrent()
return duration!
}
var duration:CFAbsoluteTime? {
if let endTime = endTime {
return endTime - startTime
} else {
return nil
}
}
}
你可以这样使用它:
let timer = ParkBenchTimer()
// ... a long runnig task ...
println("The task took \(timer.stop()) seconds.")
发布于 2015-06-22 17:03:34
let start = NSDate()
for index in 1...10000 {
// do nothing
}
let elapsed = start.timeIntervalSinceNow
// elapsed is a negative value.
发布于 2019-05-31 00:16:58
只需复制并粘贴此函数即可。用swift 5写的。在这里复制JeremyP。
func calculateTime(block : (() -> Void)) {
let start = DispatchTime.now()
block()
let end = DispatchTime.now()
let nanoTime = end.uptimeNanoseconds - start.uptimeNanoseconds
let timeInterval = Double(nanoTime) / 1_000_000_000
print("Time: \(timeInterval) seconds")
}
像这样使用它
calculateTime {
exampleFunc()// function whose execution time to be calculated
}
https://stackoverflow.com/questions/24755558
复制相似问题