使用Objective-C 计算代码运行时间

简介:

第一种:(最简单的NSDate)

NSDate* tmpStartData = [NSDate date];
//You code here...
double deltaTime = [[NSDate date] timeIntervalSinceDate:tmpStartData];
NSLog(@"cost time = %f", deltaTime);

第二种:(将运行代码放入下面的Block中,返回时间)

#import <mach/mach_time.h>  // for mach_absolute_time() and friends  
  
CGFloat BNRTimeBlock (void (^block)(void)) {  
    mach_timebase_info_data_t info;  
    if (mach_timebase_info(&info) != KERN_SUCCESS) return -1.0;  
  
    uint64_t start = mach_absolute_time ();  
    block ();  
    uint64_t end = mach_absolute_time ();  
    uint64_t elapsed = end - start;  
  
    uint64_t nanos = elapsed * info.numer / info.denom;  
    return (CGFloat)nanos / NSEC_PER_SEC;  
}

第三种:

/**
 * 计算脚本时间
 * @param $last 最后一次的运行clock
 * @param $key  标识
 * @return 当前clock
 */
double t(double last, char* key){
    clock_t now = clock();
    printf("time:%fs \t key:%s \n", (last != 0) ? (double)(now - last) / CLOCKS_PER_SEC : 0, key);
    return now;
}

double t1 = t(0, "");
//do something
t(t1, "end");

相关文章
|
4天前
|
缓存 开发工具 iOS开发
优化iOS中Objective-C代码调起支付流程的速度
优化iOS中Objective-C代码调起支付流程的速度
15 2
|
iOS开发 HTML5 移动开发
Xcode 中 Objective-C 代码的样式哪种更标准的对比分析
Xcode 中 Objective-C 代码的样式哪种更标准的对比分析 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循“署名-非商业用途-保持一致”创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作。
854 0
|
C++ iOS开发
Objective-C与Objective-C++的混用代码示例
<p>很多已经熟悉C/C++的朋友在初次使用Objective-C作为开发语言时不是很习惯,不过objective-C/C++本身又是几乎完全兼容GNU C/C++的。<br> 这里作为一个代码实例来描述Objective-C与objective-C++如何混合使用。其实这就同C与C++如何混用一样,还是非常容易上手的。<br> 不 过,为了能够更好地看清这一混合优势。项目中使用了ob
1186 0