当前位置:  开发笔记 > 编程语言 > 正文

如何准确计算在iPhone上调用功能所需的时间?

如何解决《如何准确计算在iPhone上调用功能所需的时间?》经验,为你挑选了2个好方法。

我想知道将消息发送到具有至少1ms准确度的对象需要多长时间.我该怎么做呢?



1> digdog..:

您可以使用mach_absolute_time以纳秒为单位进行测量.

#import 

uint64_t startTime = 0;
uint64_t endTime = 0;
uint64_t elapsedTime = 0;
uint64_t elapsedTimeNano = 0;

mach_timebase_info_data_t timeBaseInfo;
mach_timebase_info(&timeBaseInfo);

startTime = mach_absolute_time();

//do something here

endTime = mach_absolute_time();

elapsedTime = endTime - startTime;
elapsedTimeNano = elapsedTime * timeBaseInfo.numer / timeBaseInfo.denom;

参考: 技术问答QA1398:马赫绝对时间单位



2> Brent Royal-..:

这是我做的:

NSDate * start = [NSDate date];
// do whatever I need to time
NSLog(@"time took: %f", -[start timeIntervalSinceNow]);

输出将以秒为单位(带小数部分). NSDate虽然我不确定它们究竟有多精确,但它的分辨率是毫秒级.

如果您尝试计算的代码太快,请将其置于运行代码一百次的循环中.(当然,这假设您正在计时的代码没有副作用.)

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有