函数执行时间

Xar*_*ara 5 c++ linux profiling

我想找出在 Linux 上用 C++ 编写的函数的执行时间。我发现了很多与此相关的帖子。我尝试了此链接计时器方法中提到的所有方法来计算时间。以下是我的函数的执行时间结果:

time() :           0 seconds 
clock() :          0.01 seconds
gettimeofday() :   0.002869 seconds
rdtsc() :          0.00262336 seconds
clock_gettime() :  0.00672151 seconds
chrono :           0.002841 seconds 
Run Code Online (Sandbox Code Playgroud)

请帮助我哪种方法的读数可靠,因为所有结果的读数都不同。我读到您的操作系统正在不同的任务之间切换,因此不能期望读数非常准确。有没有一种方法可以计算 CPU 在我的函数上花费的时间。我听说过分析工具的使用,但还没有找到任何函数的示例。请指导我。

Bas*_*tch 2

阅读时间(7) .

\n\n

由于各种原因(并且取决于您的实际硬件,即您的主板),时间并不像您希望的那么准确。

\n\n

因此,添加一些循环多次重复您的函数,或者更改其输入以使其运行时间更长。确保整个程序的执行时间(由time(1) ... 给出)至少约为一秒(如果可能,请确保至少有半秒的CPU时间)。

\n\n

对于分析,使用 \xc2\xa0 进行编译和链接g++ -Wall -pg -O1,然后使用gprof(1)(有更复杂的分析方法,例如oprofile ...)。

\n\n

另请参阅对一个非常相似的问题的回答(由同一个Zara提出)。

\n