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 @   luoganttcc  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示