【问题标题】:Measuring time between method "didUpdateValueFor" called测量方法“didUpdateValueFor”调用之间的时间
【发布时间】:2019-04-09 08:04:08
【问题描述】:

我想测量一个函数被调用到下一次被调用之间的时间。

目前我有一个带蓝牙的应用程序。 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"

【问题讨论】:

    标签: swift methods time timer


    【解决方案1】:

    我真的找到了答案。不是最佳的,但目前可行:

        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")
    

    够用了

    【讨论】:

      猜你喜欢
      • 2011-02-10
      • 1970-01-01
      • 2012-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-14
      • 2023-04-07
      相关资源
      最近更新 更多