iOS获取一个方法的执行时间【转】
2012-04-11 23:44
507 查看
转自:http://www.linuxidc.com/Linux/2012-04/57906.htm
最近在做一个应用的时候,从电话本时读出数据,如果电话很多,就需要比较长的时间,于是如果能得到每个方法的执行时间,就可以知道代码优化的地方。
在网上看到了一个比较好的方法来获取执行时间。看代码
// 新建一个BNRTimeBlock.h头文件
#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;
} // BNRTimeBlock
调用方法如下
#define LOOPAGE 10000000
#import "BNRTimeBlock.h" // 引用头文件即可调用 BNRTimeBlock
int main (void) {
CGFloat time;
NSString *thing1 = @"hi";
NSString *thing2 = @"hello there";
time = BNRTimeBlock(^{
for (int i = 0; i < LOOPAGE; i++) {
[thing1 isEqual: thing2];
}
});
printf ("isEqual: time: %f\n", time);
time = BNRTimeBlock(^{
for (int i = 0; i < LOOPAGE; i++) {
[thing1 isEqualToString: thing2];
}
});
printf ("isEqualToString: time: %f\n", time);
return 0;
} // main
最近在做一个应用的时候,从电话本时读出数据,如果电话很多,就需要比较长的时间,于是如果能得到每个方法的执行时间,就可以知道代码优化的地方。
在网上看到了一个比较好的方法来获取执行时间。看代码
// 新建一个BNRTimeBlock.h头文件
#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;
} // BNRTimeBlock
调用方法如下
#define LOOPAGE 10000000
#import "BNRTimeBlock.h" // 引用头文件即可调用 BNRTimeBlock
int main (void) {
CGFloat time;
NSString *thing1 = @"hi";
NSString *thing2 = @"hello there";
time = BNRTimeBlock(^{
for (int i = 0; i < LOOPAGE; i++) {
[thing1 isEqual: thing2];
}
});
printf ("isEqual: time: %f\n", time);
time = BNRTimeBlock(^{
for (int i = 0; i < LOOPAGE; i++) {
[thing1 isEqualToString: thing2];
}
});
printf ("isEqualToString: time: %f\n", time);
return 0;
} // main
iOS获取一个方法的执行时间
相关文章推荐
- iOS获取一个方法的执行时间
- iOS获取一个方法的执行时间
- iOS获取一个方法的执行时间
- C#在VS2005开发环境中利用异步模式来对一个方法的执行时间进行超时控制
- iOS开发延迟执行一个方法的方法
- java设置一段代码执行的超时时间的简单方法 间接实现获取Connection超时问题
- 获取C#中方法的执行时间及其代码注入
- cocos2d-x在win32和iOS、android下获取当前系统时间的方法
- 一定间隔时间下重复执行一个函数的几个方法
- 在Unity3D中获取某个方法的执行时间
- sqlserver中获取执行sql语句时间的方法
- java设置一段代码执行的超时时间的简单方法 间接实现获取Connection超时问题
- 如何精确计算一个方法执行的时间-如博客园的提交评论提交耗时xxx毫秒?
- ios 计算方法执行的时间
- ios 计算方法执行的时间
- 获取页面执行时间的几种方法(asp.net) (转)
- java 计算一个方法的返回执行时间
- unity获取某个方法执行的时间
- debounce函数让一个方法在一定时间内只能执行一次
- linux上获取北京时间的一个方法