执行功能所花费的时间显示1.#INF00

时间:2013-12-30 09:17:04

标签: c clock performance-testing

我必须根据每秒解码的帧数来衡量解码器的性能。即计算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(),那么我如何获得解码函数所花费的时间。

任何有关相同的建议都会非常有用。提前谢谢。

1 个答案:

答案 0 :(得分:0)

适当的宏是CLOCKS_PER_SEC,而不是CLOCK_PER_SEC

此外,您可以使用clock(),而不是使用clock_gettime(),因为您只是想要时间。