您的位置:首页 > 编程语言 > C语言/C++

C++中的执行时间测量

2016-07-04 00:00 169 查看
【程序语言】C++中的执行时间测量 - 精灵的博客 - 博客频道 - CSDN.NET

http://blog.csdn.net/theprinceofelf/article/details/6636041

测试一段代码,或者一个函数是写完代码后经常要做的事。

我习惯的写东西的顺序是:

测试代码 --> 伪代码 --> 实际代码 --> 更加高效的版本 --> 带输入输出控制检测,出错验证的代码 -->更加灵活的版本

下面列举下常用的时间测试方法:

1. <time.h>版本

clock_t start = clock();

/*code to be tested*/

clock_t end = clock();

cout<<end - start<<endl;

大家多这个版本多半不会陌生,这应该是最常用的执行时间测试方法了,能精确到ms级。

2.<Windows.h>版本

LARGE_INTEGER frec;

LARGE_INTEGER strt;

LARGE_INTEGER ed;

QueryPerformanceFrequency(&frec);

QueryPerformanceCounter(&strt);

/*code to be tested*/

QueryPerformanceCounter(&ed);

cout<<(ed.QuadPart-strt.QuadPart)*1000/frec.QuadPart<<endl;

这个是针对于特定的平台的测试,有时候我们需更高的精度测试时,往往需要用到这个测试,其中frec记录的是CPU每秒的频率,使用QueryPerformanceFrequency()查询。然后分别测试代码开始处的时钟数和结束处得时钟数。最后,相减除以每秒的频率就得到执行时间。*1是秒数,*1000是毫秒数,*1000 000 是微秒数,*1000 000 000是ns数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息