我正在尝试做一个程序,我需要找到做数学函数的时间。假设我正在进行计算a / b,那么我怎样才能找到以毫秒为单位完成计算所需的时间? 请帮帮我
答案 0 :(得分:2)
通常的过程是很多次(比如N
),然后将N
所用的时间分开。
例如,在伪代码中:
count = 100000
startTime = secondsSinceStartOfDay()
for i = 1 to count
do nothing
duration = secondsSinceStartOfDay() - startTime
print "Milliseconds per NOP = ", (duration * 1000 / count)
startTime = secondsSinceStartOfDay()
for i = 1 to count
x = a/b
duration = secondsSinceStartOfDay() - startTime
print "Milliseconds per division = ", (duration * 1000 / count)
这使您可以折扣循环本身的成本,因为无论是否测量操作都可以测量。
你必须要小心那些可能决定的激进优化者,因为你实际上并没有使用你计算的任何东西,所以可以自由地优化循环代码。我实际上已经看到了这种情况。毋庸置疑,如果您正在进行性能测量,您应该了解幕后发生的事情。
答案 1 :(得分:-1)
看看ctime库。
#include<ctime>
#include<time.h>
clock_t t1=clock();
//Your calculation here
clock_t t2=clock();
cout<<"Time taken" << doubel(t2-t1) << "clock cycles";