如何知道一个函数的运行时间

1)头文件ctime里面提供了一个函数:  clock_t clock();
 该函数返回的是从程序开始运行到调用clock函数时所打的点数,即clock tick(时钟打点);

2)有一个常数CLK_TCK,是机器时钟每秒所走的时钟打点数,是这样定义的

#define CLK_TCK  CLOCKS_PER_SEC 

# define CLOCKS_PER_SEC 1000

3) 所以,定义两个clock的变量Begin,End;然后在要测试的函数前后分别调用clock函数就可以得出时钟打点数,再除以CLK_TCK就得到时间了

4)我来举个例子具体应用下:

#include<iostream>  
#include<ctime>  
using namespace std;  
#define N 10000  
#define CLK_TCK  CLOCKS_PER_SEC //机器时钟每秒的打点数  
clock_t Begin,End;  
double duration;  
void Fun(int N);  
void Fun(int N)  
{  
    int i = 0;  
    for(i=0; i<n; i++)  
    {  
        cout<<i<<endl;  
    }  
}  
int main()  
{  
    Begin = clock();  
    Fun(100);  
    End = clock();  
    duration = (End-Begin)/CLK_TCK;  
    cout<<"tick:"<<End-Begin<<endl;  
    cout<<CLK_TCK<<endl;  
    cout<<"duration:"<<duration<<endl;  
    return 0;  
} 

猜你喜欢

转载自blog.csdn.net/lu_1079776757/article/details/79745750