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

相關文章
相關標籤/搜索