C 语言程序计时
程序员文章站
2024-01-23 18:25:58
...
来源:姥姥的数据结构课程
我们测试一个函数的运行时间时,就需要用到下面这套模板。
基本程序
#include<stdio.h>
#include<time.h>
clock_t start, stop;
double duration;//记录被测函数运行时间,以s为单位
int main()
{
start = clock(); //开始计时,返回从程序开始的时钟打点数
MyFunction(); //测试函数
stop = clock(); //结束计时
//CLK_TCK = 1000, 6x86_64-w64-mingw32-gcc.exe编译器
duration = ((double)(stop - start))/CLK_TCK;
return 0;
}
在time.h中,clock_t 为长整形
typedef long clock_t;
CLK_TCK 和 CLOCKS_PER_SEC都表示一秒钟的时钟打点数,值为1000
#define CLK_TCK CLOCKS_PER_SEC
#define CLOCKS_PER_SEC 1000
如果程序时间太短结果为0怎么办?
答案很简单:循环。
可以根据自己的需要修改MAXK 的值
#include<stdio.h>
#include<time.h>
#define MAXK 1e7
clock_t start, stop;
double duration;//记录被测函数运行时间,以s为单位
int main()
{
start = clock();//开始计时,返回从程序开始的时钟打点数
for(int i = 0; i < MAXK; i ++)
MyFunction(); //测试函数
stop = clock(); //结束计时
//CLK_TCK = 1000, 6x86_64-w64-mingw32-gcc.exe编译器
duration = ((double)(stop - start))/CLK_TCK/MAXK;
return 0;
}
上一篇: c++计时函数