【发布时间】:2013-07-16 08:38:36
【问题描述】:
在以下程序中,我尝试测量作业的执行时间(for 循环)。大多数时候它工作正常,但是,有时它会返回负值!我的第一个猜测是变量可能会溢出。谁能告诉我我是否正确?我该如何解决这个问题?
谢谢
int main(int argc, char **argv)
{
long int ST;
long int ET;
struct timespec gettime_now;
clock_gettime(CLOCK_REALTIME, &gettime_now);
ST= gettime_now.tv_nsec;
for (i=0; i < 1000; i++)
a[i]=b[i];
clock_gettime(CLOCK_REALTIME, &gettime_now);
ET= gettime_now.tv_nsec;
printf("Time diff: %ld\n", ET-ST);
}
【问题讨论】:
-
请参阅:stackoverflow.com/questions/17659867/… 了解如何为函数计时。