【发布时间】:2012-10-05 09:08:21
【问题描述】:
我正在运行一个使用 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。
【问题讨论】:
标签: c cross-compiling simulator