计算函数执行的时间

方法1
double func_runtime(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 t = func_runtime(0, "");
    func_runtime(t, "end");
方法2
#ifndef NonAtomicTest_Method_h

#define NonAtomicTest_Method_h

//c函数实现  返回值类型 函数名  函数参数(是一个block)

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

#endif

    CGFloat time = 0.0 ;
    printf("begin:===========%lf\n",time);
    time = BNRTimeBlock(^{
        printf("end2:===========%lf\n",time);

        });
        printf("end1:===========%lf\n",time);

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容