2011-01-23 63 views
1

我想做一个程序,我需要找到做数学函数的时间。假设我正在做一个计算a/b,那么我怎么才能找到完成这个计算所需的时间(毫秒)? 请帮我如何找到做数学运算所花费的时间?

+1

需要大约0毫秒的时间。你为什么想知道? – 2011-01-23 09:00:17

回答

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) 

这允许你打折的循环本身,因为你具有和不操作测量的成本被测量。

你必须小心积极的优化者,这可能会决定,因为你实际上没有使用任何你计算的东西,它可以自由地优化循环代码的存在。我已经看到了这种情况。不用说,如果您正在进行性能测量,您应该了解封面下发生的情况。

+0

您还在测量执行循环的时间,这对于如此快速的操作来说是非常重要的。 – starblue 2011-01-23 09:11:48

-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"; 
相关问题