我想找出在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
请帮助我哪种方法读数可靠,因为所有结果的读数都不同。我读到您的操作系统正在不同的任务之间切换,因此不能期望读数非常准确。有没有一种方法可以计算CPU在功能上花费的时间。我听说过使用概要分析工具,但是还没有找到仅用于函数的示例。请指导我。
读取时间(7)。
由于各种原因(并取决于您的实际 硬件 ,即您的主板),时间不如您希望的那样精确。
因此,添加一些重复执行函数多次的循环,或更改其输入以使其运行更长的时间。确保整个程序的执行时间(由time(1) … 给定)至少约为一秒(如果可能,请确保您至少有半秒的 CPU 时间)。
要进行概要分析,请g++ -Wall -pg -O1使用gprof(1)进行编译和链接(有更复杂的概要分析方法,例如oprofile …)。
g++ -Wall -pg -O1