我正在運行一個使用GCC和專有的DSP交叉編譯器來模擬一些函數的C程序。我使用下面的代碼來衡量我的程序的特定部分的執行時間:使用clock()來測量執行時間
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。
我明白你的意思,但該模擬器是一個軟件模擬器,所以在本質上它是在CPU上運行....反正可以請你提出好的建議,我可以用來測量準確的運行時間......謝謝 – anshu