2018-08-05

iOS 运行时间计算

CACurrentMediaTime

dispatch_benchmark

CACurrentMediaTime

CFTimeInterval st = CACurrentMediaTime();

for(NSInteger i = 0; i < 10000;i++) {

    @autoreleasepool {

        NSMutableArray *items = [NSMutableArray array];

        for(NSInteger j = 0; j < 10000;j++) {

          [items addObject:@"abc"];

        }

    }

}

CFTimeInterval et = CACurrentMediaTime();

NSLog(@"total Runtime:%g - %g = %g s",et,st,et - st);

特点: 1、公有函数  2、精度不够

dispatch_benchmark

这是GDC中的私有函数,使用时要先申明

/*

*  @count 运行的次数

*  @block 为运行代码

*  @return 返回运行的时间

*/

extern uint64_t dispatch_benchmark(size_t count, void (^block)(void));

uint64_t t = dispatch_benchmark(1000, ^{

        @autoreleasepool {

            NSMutableArray *items = [NSMutableArray array];

            for(NSInteger j = 0; j < 10000;j++) {

                [items addObject:@"abc"];

            }

        }

    });

    NSLog(@"run time: %llu ns",t);

特点:1、使用简洁  2、时间更精确

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 作者备注:摘抄的 盼……望穿一个世纪的时光香江水依旧悠悠长长港人早已历经沧桑回首都是这愿望归…… 大家发现了吗?竖...
    初夏与雨阅读 562评论 2 3
  • 看着班群里“就业委员”一条条转发着企业实习生招聘的信息,情绪越发地焦虑。因为德国学期结束要到八月,我大概是赶不上暑...
    林翎阅读 484评论 0 1
  • 如下图,新增了一个Feature Module,字面的理解是“功能模块”,可以包含res等资源文件。个人的理解是,...
    心逝蓝殇阅读 2,849评论 0 0