mach_absolute_time () 与 CACurrentMediaTime() 计算时间 间隔 并转为秒

来源:互联网 发布:陕西天诚软件 怎么样 编辑:程序博客网 时间:2024/06/07 07:45


==================================================



 uint64_t nanos = mach_absolute_time (); 是纳秒

将 纳秒转为秒   :(CGFloat)nanos / NSEC_PER_SEC; 将 纳秒转为秒

CACurrentMediaTime(); // 是秒


==================================================

CGFloat ComputeTimeBlock (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;

    CGFloat test =  (CGFloat)nanos /NSEC_PER_SEC;

    return test;

}


CGFloat ComputeTimeBlock2 (void (^block)(void)) {

    mach_timebase_info_data_t info;

    if (mach_timebase_info(&info) !=KERN_SUCCESS) return -1.0;

    

    uint64_t start =CACurrentMediaTime(); // 此时是秒

    block ();

    uint64_t end =CACurrentMediaTime();

    uint64_t elapsed = end - start;

    

    return elapsed;

}

0 0
原创粉丝点击