我想测量一次函数调用与下一次调用之间的时间。
当前,我有一个带有蓝牙的应用程序。 Arduino将字节数组发送到应用程序以在表格视图中显示的位置。我有两个蓝牙模块,我想测量时间以查看速度差异。
当应用程序接收到字节数组时,将调用函数didUpdateValueFor。并在其中将数据发送接收到另一个功能。
我的问题是我使用的所有计时器和计数器都只能用来获取该函数的整个执行时间。
我要测量的是从接收第一个字节数组到接收到下一个打包数组之间的时间。
func printTimeElapsedWhenRunningCode(title:String, operation:()->()) {
let startTime = CFAbsoluteTimeGetCurrent()
operation()
let timeElapsed = CFAbsoluteTimeGetCurrent() - startTime
print("Time elapsed for \(title): \(timeElapsed) s.")
}
使用上面发布的功能,我相信它会很好用。但是我希望它能够测量每次调用didUpdateValueFor之间的时间。
所以:
Byte array receievd - didUpdateValueFor is called
Timer starts
New array received - didUpdateValueFor is called
Timebetween is: "...ms"
答案 0 :(得分:0)
我实际上找到了答案。并非最佳,但目前可以使用:
var start = Date()
func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) {
var diff = Date().timeIntervalSince(start)
print("differanse is: \(diff) seconds")
start = Date()
print("Starting at 0")
diff = 0
print("diff = 0")
足够好