2014-02-13 62 views
1

我得有100個不同的輸入值的Python腳本的執行時間,所以我寫了下面的C程序獲取Python腳本的執行時間與C程序

#include <stdlib.h> 
#include <stdio.h> 

int main(void) { 

    int i; 
    char command [200]; 

    for (i = 1; i <= 100; ++i) { 
     sprintf(command, "time python program.py %d", i); 
     system(command); 
    }; 

    return 0; 
}; 

有了這個程序,我可以看到每次執行的執行時間,但我希望能夠在變量中捕獲它。有沒有辦法做到這一點?

+1

也許你真的*尋找的是['timeit'](http://docs.python.org/2/library/timeit.html)。另請參見[如何正確使用timeit](http://stackoverflow.com/questions/8220801/how-to-use-timeit-correctly)。 –

回答

1

gettimeofday() from <sys/time.h>可用於您的情況。

double elapsedTime[100]; 
for (i = 1; i <= 100; ++i) {  
     sprintf(command, "python program.py %d", i); 
     gettimeofday(&t1, NULL); 
     system(command); 
     gettimeofday(&t2, NULL); 

     // compute and print the elapsed time in millisec 
     elapsedTime[i] = (t2.tv_sec - t1.tv_sec) * 1000.0;  // sec to ms 
     elapsedTime[i] += (t2.tv_usec - t1.tv_usec)/1000.0; // us to ms 
    }; 

如果可能的話,你可以使用一些分析工具,它支持Python。

+1

如果你這樣做,你不需要命令行中的'time'。 –

+1

@JonathonReinhart是的。不需要。 – Jeyaram