0

这是我的程序的结构

while(oneMoreTime){
  if(condition1)
    processA
  else
    processB
}

现在,ProcessA 第一次始终运行。一旦它运行起来,就会构建一些数据结构,这有助于我加快这个过程。现在在某些条件和不同的输入下,processB 将运行。

现在,在 ProcessA 至少运行一次之前,processB 无法运行。

我想知道,执行 processB 时与执行 processA 时相比,速度提高了多少?

我正在使用 C 和 Ubuntu。

4

2 回答 2

2

使用探查器(例如 AQTime)来跟踪和记录流程的实际执行时间,以便您随后对其进行分析。

于 2013-04-28T09:56:58.447 回答
1

我认为您可以在流程A和B中记录时间,在C中您可以这样做:

#include<time.h>
void ProcessA (...) {
   struct timeval starttime, endtime;
   gettimeofday(&starttime, NULL);
   ...
   ...
   gettimeofday(&endtime, NULL);
   printf("%f\n", 1000000 * (endtime.tv_sec - starttime.tv_sec) + endtime.tv_usec - starttime.tv_usec)   //
}
void ProcessB(...) {
   just like ProcessA
}
于 2013-04-28T10:17:16.483 回答