我必须根据每秒解码的帧数来衡量解码器的性能。即计算FPS。
以下是我的代码段:
//global variables
clock_t start,stop;
double totTime, FPS;
main()
{
while(End_of_file)
{
start=clock();
//Decode function is called here
stop=clock();
totTime=stop-start;
FPS=1/(totTime/CLOCKS_PER_SEC);
printf("\n %lf fps\n",FPS);
}
}
printf语句有时打印正确的值,但有时会给出一个值1.#INF00
,根据我搜索的内容,它是一个浮点异常,也称为positive infinity
,当我们尝试划分时正数由零。所以我的问题是为什么将totTime=start-stop;
视为0?其次,如果不是clock(),那么我如何获得解码函数所花费的时间。
任何有关相同的建议都会非常有用。提前谢谢。
答案 0 :(得分:0)
适当的宏是CLOCKS_PER_SEC
,而不是CLOCK_PER_SEC
。
此外,您可以使用clock()
,而不是使用clock_gettime()
,因为您只是想要时间。