Time 计算我的程序的执行时间

Time 计算我的程序的执行时间,time,execution,Time,Execution,因此,在我的图像处理项目中,我目前正在使用gettickcount()计算处理每一帧所需的平均时间。但是,为了提高速度,我选择每隔一帧处理一次。理论上,程序应该运行得更快,而且确实如此。但是,我从gettickcount获得的值保持不变。这让我相信gettickcount函数仍然在计算程序未处理图像的滴答声 while(capture.grab()) { int64 t = getTickCount(); if(count == 0) //count is each image

因此,在我的图像处理项目中,我目前正在使用gettickcount()计算处理每一帧所需的平均时间。但是,为了提高速度,我选择每隔一帧处理一次。理论上,程序应该运行得更快,而且确实如此。但是,我从gettickcount获得的值保持不变。这让我相信gettickcount函数仍然在计算程序未处理图像的滴答声

while(capture.grab())
{
    int64 t = getTickCount();

    if(count == 0) //count is each image number. this segment processes the first image
    {

    }

    if(count % 2 == 1) //processes every other image
    {

    }
}
getTickCount函数是否仍然从if(计数%2==1)计算刻度,即使它没有使用


谢谢

是的。不管“count”的值是多少,您都在while循环的每个过程中调用getTickCount

尝试:

#包括
#包括
int main()
{
时钟启动=时钟();
//在这里编写代码,这将计算代码的执行时间。。。
时钟结束=时钟();
printf(“运行时间:%.5f\n”,((双)(结束-
启动/时钟(每秒);
返回0;
}

<代码>我假设你正在使用C++。这是一个正确的假设吗?@Jordy-你绝对肯定吗?喝杯咖啡的时间到了?@Zec是的,模运算符返回除法后的余数。0 / 2 = 0. 所以余数是0。@Jordy-我完全同意你的看法。因此,用0替换“count”,我们得到了表达式“0==0”和“0%2==1”。其中只有一个是正确的(提示:它不是带模运算符的)。只有一个if语句被传递。另外,感谢您清理我的代码示例。我真是太懒了,我只是因为别人太懒而把他抓了起来。@Zec,你完全正确。我很抱歉,因为某些原因,我一直在读==0(可能是因为每一个其他的图像评论,谁会说)。现在是早上,也许是喝杯咖啡的时候了。再次抱歉。但如果它为==0,则更有意义。我应该补充一点,你遇到的问题与你以后用“t”所做的事情有很大关系,正如它与你迄今为止共享的条件一样。你用“t”做什么?
while(capture.grab())
{
    int64 t = 0;

    if(count == 0) //count is each image number. this segment processes the first image
    {
      t = getTickCount();
    }
    if(count % 2 == 1) //processes every other image
    {
      t = getTickCount();
    }
}
#include<stdio.h>
#include<time.h>

int main()
{

clock_t start = clock();

//write your code here, and this will calculate the execution time of the code...

clock_t ends = clock();

printf("run time: %.5f \n", ((double)(ends - 

start)) / CLOCKS_PER_SEC);

return 0;

}