您的位置:首页 > 移动开发 > IOS开发

mach_absolute_time 快速容易的方法来检测一段ios 代码执行的效率函数

2014-02-10 12:07 489 查看


Quick Performance Measurements

原文链接 :http://iosdeveloperzone.com/2011/05/03/quick-performance-measurements/

A quick and easy way to measure the performance of a piece of iOS code is to dig down below all the Cocoa Touch stuff and use the low-level 
mach_absolute_time
.
This call returns a tick count that can be converted into nanoseconds using information obtained from the
mach_timebase_info
 call.
The following code sketches out the technique:

add 
#import <mach/mach_time.h>


double MachTimeToSecs(uint64_t time)
{
    mach_timebase_info_data_t timebase;
    mach_timebase_info(&timebase);
    return (double)time * (double)timebase.numer /
    (double)timebase.denom /1e9;
}

- (void)profileDoSomething
{
    uint64_t begin =
mach_absolute_time();
    [selfdoSomething];
    uint64_t end =
mach_absolute_time();
    NSLog(@"Time taken to doSomething %g s",
          MachTimeToSecs(end - begin));
}
-(void)doSomething
{
    for (int i =
0; i <1000; i++) {
        NSLog(@"test");
    }
}

The timebase values on the simulator, at least on my MacBook Air, are 1/1, however on the iPad and iPhone 4 they are 125/3; so don’t be lazy and hard code them.

Never assume that because something runs quickly on the simulator it will also run quickly on a target device. On two jobs last year I encountered code that took 100x longer to run an iPad than in the simulator.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios time