如何找到进行数学运算所需的时间?

时间:2011-01-23 08:58:02

标签: android time

我正在尝试做一个程序,我需要找到做数学函数的时间。假设我正在进行计算a / b,那么我怎样才能找到以毫秒为单位完成计算所需的时间? 请帮帮我

2 个答案:

答案 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";