如何在一个程序中检查我的两个不同进程的运行时间

时间:2013-04-28 09:52:29

标签: performance algorithm

这是我的程序结构

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

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

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

我想知道,当执行processB的时间比执行processA时速度提高了多少?

我正在使用C和Ubuntu。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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
}