C++中的执行时间测量

【程序语言】C++中的执行时间测量 - 精灵的博客 - 博客频道 - CSDN.NET
http://blog.csdn.net/theprinceofelf/article/details/6636041函数

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

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

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

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

1. <time.h>版本blog

  1. clock_t start = clock();  
  2. /*code to be tested*/
  3. clock_t end   = clock();  
  4. cout<<end - start<<endl; 

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

2.<Windows.h>版本博客

  1. LARGE_INTEGER frec;  
  2. LARGE_INTEGER strt;  
  3. LARGE_INTEGER ed;  
  4. QueryPerformanceFrequency(&frec);  
  5. QueryPerformanceCounter(&strt);  
  6. /*code to be tested*/
  7. QueryPerformanceCounter(&ed);  
  8. cout<<(ed.QuadPart-strt.QuadPart)*1000/frec.QuadPart<<endl; 

这个是针对于特定的平台的测试,有时候咱们需更高的精度测试时,每每须要用到这个测试,其中frec记录的是CPU每秒的频率,使用QueryPerformanceFrequency()查询。而后分别测试代码开始处的时钟数和结束处得时钟数。最后,相减除以每秒的频率就获得执行时间。*1是秒数,*1000是毫秒数,*1000 000 是微秒数,*1000 000 000是ns数。form

相关文章
相关标签/搜索