我正在嘗試以微秒爲單位來計算兩個事件之間的時間。我需要至少測量到1/10毫秒。iOS上的測量時間(以微秒爲單位)
我知道的NSDate
和CFAbsoluteTimeGetCurrent
,但都只有毫秒。有沒有人知道我可以做到這一點的方式?
我正在嘗試以微秒爲單位來計算兩個事件之間的時間。我需要至少測量到1/10毫秒。iOS上的測量時間(以微秒爲單位)
我知道的NSDate
和CFAbsoluteTimeGetCurrent
,但都只有毫秒。有沒有人知道我可以做到這一點的方式?
CFAbsoluteTimeGetCurrent
calls gettimeofday
,它具有微秒的分辨率。
NSDate
只是一個圍繞CFAbsoluteTime
的包裝,因此它也具有微秒的分辨率。
爲什麼你認爲他們只有毫秒分辨率?
當我將日期格式化程序從SSS更改爲SSSSSS時,最後三位數字只填充0。 –
'NSLog(@「%。6f」,CFAbsoluteTimeGetCurrent())'的輸出是什麼?它是否以'000'結尾? –
你是對的 - 這確實有效 - 在最後得到6個非零數字:) –
參見mach_absolute_time
。它的粒度下降到了幾納秒。
http://shiftedbits.org/2008/10/01/mach_absolute_time-on-the-iphone/
最壞情況下它必須是1/10毫秒。爲什麼從1減去2幫助我? –