linux 下 c++ clock 函数理解

#include <stdio.h>
#include <time.h>
using namespace std;

int sum(int n)
{
    int res = 0;
    if (n < 1)
    {
        printf("错误!\n");
        return res;
    }
    for(int i = 1; i <= n; i++)
        res += i * i;
    return res;
}

int sum2(int n)
{
    int res = 0;
    if (n < 1)
    {
        printf("错误!\n");
        return res;
    }
    res = n * (n + 1) * (2 * n + 1) / 6;
    return res;
}


// 测试函数
int main()
{
    clock_t start_time, end_time;

    start_time = clock();
    for (int i = 0; i < 10000000; ++i)
    {
        sum2(1000);
    }
    end_time = clock();
    printf("执行时间为 %f s\n", (double)(end_time - start_time) / CLOCKS_PER_SEC);

    printf("CLOCKS_PER_SEC= %d \n",(int)(CLOCKS_PER_SEC));
    printf("执行时间为 %f μs\n", (double)(end_time - start_time));
    printf("在linux 中 clock 的单位是微秒 \n 1μs 1微秒=0.000001=10-6秒 \n");

    return 0;
}

执行时间为 0.064275 s
CLOCKS_PER_SEC= 1000000 
执行时间为 64275.000000 μs
在linux 中 clock 的单位是微秒 
 1μs 1微秒=0.000001=10-6
        clock_t t1 = clock();
        gettimeofday(&start1, NULL);
        cv::Mat image_yuv_nv12(imageDataPtr_[i]->data.height * YUV_SCALE_H / YUV_SCALE_W, imageDataPtr_[i]->data.width, CV_8UC1);
        clock_t t2 = clock();
        gettimeofday(&end1, NULL);
        time_use = (end1.tv_sec-start1.tv_sec)*1000+(end1.tv_usec-start1.tv_usec)/1000.0;//毫秒
posted @ 2022-08-19 22:46  luoganttcc  阅读(26)  评论(0)    收藏  举报