gpt4 book ai didi

c - 使用 clock() 测量执行时间

转载 作者:太空狗 更新时间:2023-10-29 14:54:11 25 4
gpt4 key购买 nike

我正在使用 GCC 和专有的 DSP 交叉编译器运行 C 程序来模拟某些功能。我正在使用以下代码来测量程序特定部分的执行时间:

clock_t start,end;
printf("DECODING DATA:\n");
start=clock();
conv3_dec(encoded, decoded,3*length,0);
end=clock();
duration = (double)(end - start) / CLOCKS_PER_SEC;
printf("DECODING TIME = %f\n",duration);

其中 conv3_dec() 是我程序中定义的一个函数,我想找到这个函数的运行时。

现在问题是当我的程序运行时,conv3_dec() 函数运行了将近 2 小时,但是 printf("DECODING TIME = %f\n",duration ) 表示函数的执行仅用了半秒 (DECODING TIME = 0.455443) 。这让我很困惑。

我以前使用clock_t 技术来测量程序的运行时间,但差异从未如此巨大。这是交叉编译器引起的吗?附带说明一下,模拟器模拟运行频率仅为 500MHz 的 DSP 处理器,DSP 处理器和我的 CPU 的时钟速度差异也是导致错误的原因是测量 CLOCKS_PER_SEC。

最佳答案

clock 测量 cpu 时间而不是挂钟时间。由于您没有在 CPU 上运行大部分代码,因此这不是正确的工具。

关于c - 使用 clock() 测量执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12743063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com