0
可能重複:
C++ Timer function to provide time in nano seconds
High resolution timer with C++ and Linux?定時功能
我想時間幾個C函數,和我試圖拿出一個系統的方法這樣做。到目前爲止,我有的是時間的最簡單形式:
#include <sys/time.h>
struct timeval start_time, end_time;
gettimeofday(&start_time, NULL);
<my function>
gettimeofday(&end_time, NULL);
total_usecs = (end_time.tv_sec-start_time.tv_sec) * 1000000 +
(end_time.tv_usec-start_time.tv_usec);
printf ("parfib,%ld,%d\n",(long)res,total_usecs);
我還發現
timespec time1, time2;
int temp;
clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &time1);
<my function>
clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &time2);
cout<<diff(time1,time2).tv_sec<<":"<<diff(time1,time2).tv_nsec<<endl;
但即使有std=gnu99
我一直沒能得到這個工作(我複製了上述來自網站的代碼,但在編譯之前我確實翻譯過C :)。無論如何,我想知道您是否有任何人知道文檔或博客或討論計時功能,如我正在嘗試做的事情。 小心,我不是在諸如gprof
之類的分析器之後,我需要這個分析器是手工製作的。
感謝您的任何提示。
我想你需要比時間函數更好的採樣? –
「我需要這個探查器是手工製作的」。如果目標是*測量*,只需圍繞環路來獲得所需的所有準確性。如果目標是有效地找到加速機會,測量是不會做到的。 * [This do it。](http://stackoverflow.com/questions/375913/what-can-i-use-to-profile-c-code-in-linux/378024#378024)* –