2013-04-28 11 views
0

這裏是我的程序的結構現在如何檢查我的兩個不同過程的運行時間在一個程序中

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

,首次,ProcessA運行,始終。一旦運行,一些數據結構就會建立起來,這有助於我加速這個過程。 現在在一些條件和不同的輸入下,processB將運行。

現在,在ProcessA運行至少一次之前,processB無法運行。

我想知道,當processB執行的速度比processA的執行速度提高了多少時?

我正在C和Ubuntu上工作。

回答

1

我認爲你可以記錄在Process 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 
} 
+0

inccinf謝謝。 – Kraken 2013-04-28 10:20:37

2

使用Profiler(例如AQTime)來跟蹤和記錄流程的實際執行時間,然後您可以分析它們。

+0

我想我可能只是之前和ProcessA後打印的時間,同樣的工藝B 。並檢查差異?這會工作嗎?另外,如何在C中打印時間? – Kraken 2013-04-28 09:59:46

+1

+1爲了這個目的,我使用AQTime,並且它很好地處理了多線程,儘管花在鎖定機制上的時間往往需要被仔細忽略/解釋。 – 2013-04-28 10:16:33

相關問題