c++计时器



  1. //Windows系统下time(),clock(),timeGetTime(),GetTickCount(),QueryPerformanceCounter()来计时  
  2. #include <stdio.h>    
  3. #include <windows.h>    
  4. #include <time.h>                   //time_t time()  clock_t clock()    
  5. #include <Mmsystem.h>               //timeGetTime()    
  6. #pragma comment(lib, "Winmm.lib")   //timeGetTime()    
  7.      
  8. //使用方法:将Sleep()函数换成需要测试运行时间的函数即可。  
  9. int main()    
  10. {    
  11.     //用time()来计时  秒    
  12.     time_t timeBegin, timeEnd;    
  13.     timeBegin = time(NULL);    
  14.     Sleep(1000);    
  15.     timeEnd = time(NULL);    
  16.     printf("%dn", timeEnd - timeBegin);    
  17.          
  18.          
  19.     //用clock()来计时  毫秒    
  20.     clock_t  clockBegin, clockEnd;    
  21.     clockBegin = clock();    
  22.     Sleep(800);    
  23.     clockEnd = clock();    
  24.     printf("%dn", clockEnd - clockBegin);    
  25.          
  26.          
  27.     //用timeGetTime()来计时  毫秒    
  28.     DWORD  dwBegin, dwEnd;    
  29.     dwBegin = timeGetTime();    
  30.     Sleep(800);    
  31.     dwEnd = timeGetTime();    
  32.     printf("%dn", dwEnd - dwBegin);    
  33.          
  34.          
  35.     //用GetTickCount()来计时  毫秒    
  36.     DWORD  dwGTCBegin, dwGTCEnd;    
  37.     dwGTCBegin = GetTickCount();    
  38.     Sleep(800);    
  39.     dwGTCEnd = GetTickCount();    
  40.     printf("%dn", dwGTCEnd - dwGTCBegin);    
  41.          
  42.       
  43.     //用QueryPerformanceCounter()来计时  微秒    
  44.     LARGE_INTEGER  large_interger;    
  45.     double dff;    
  46.     __int64  c1, c2;    
  47.     QueryPerformanceFrequency(&large_interger);    
  48.     dff = large_interger.QuadPart;    
  49.     QueryPerformanceCounter(&large_interger);    
  50.     c1 = large_interger.QuadPart;    
  51.     Sleep(800);    
  52.     QueryPerformanceCounter(&large_interger);    
  53.     c2 = large_interger.QuadPart;    
  54.     printf("本机高精度计时器频率%lfn", dff);    
  55.     printf("第一次计时器值%I64d 第二次计时器值%I64d 计时器差%I64dn", c1, c2, c2 - c1);    
  56.     printf("计时%lf毫秒n", (c2 - c1) * 1000 / dff);    
  57.    
  58.        
  59.     return 0;    
  60. }    
  1. //Windows系统下time(),clock(),timeGetTime(),GetTickCount(),QueryPerformanceCounter()来计时  
  2. #include <stdio.h>    
  3. #include <windows.h>    
  4. #include <time.h>                   //time_t time()  clock_t clock()    
  5. #include <Mmsystem.h>               //timeGetTime()    
  6. #pragma comment(lib, "Winmm.lib")   //timeGetTime()    
  7.      
  8. //使用方法:将Sleep()函数换成需要测试运行时间的函数即可。  
  9. int main()    
  10. {    
  11.     //用time()来计时  秒    
  12.     time_t timeBegin, timeEnd;    
  13.     timeBegin = time(NULL);    
  14.     Sleep(1000);    
  15.     timeEnd = time(NULL);    
  16.     printf("%dn", timeEnd - timeBegin);    
  17.          
  18.          
  19.     //用clock()来计时  毫秒    
  20.     clock_t  clockBegin, clockEnd;    
  21.     clockBegin = clock();    
  22.     Sleep(800);    
  23.     clockEnd = clock();    
  24.     printf("%dn", clockEnd - clockBegin);    
  25.          
  26.          
  27.     //用timeGetTime()来计时  毫秒    
  28.     DWORD  dwBegin, dwEnd;    
  29.     dwBegin = timeGetTime();    
  30.     Sleep(800);    
  31.     dwEnd = timeGetTime();    
  32.     printf("%dn", dwEnd - dwBegin);    
  33.          
  34.          
  35.     //用GetTickCount()来计时  毫秒    
  36.     DWORD  dwGTCBegin, dwGTCEnd;    
  37.     dwGTCBegin = GetTickCount();    
  38.     Sleep(800);    
  39.     dwGTCEnd = GetTickCount();    
  40.     printf("%dn", dwGTCEnd - dwGTCBegin);    
  41.          
  42.       
  43.     //用QueryPerformanceCounter()来计时  微秒    
  44.     LARGE_INTEGER  large_interger;    
  45.     double dff;    
  46.     __int64  c1, c2;    
  47.     QueryPerformanceFrequency(&large_interger);    
  48.     dff = large_interger.QuadPart;    
  49.     QueryPerformanceCounter(&large_interger);    
  50.     c1 = large_interger.QuadPart;    
  51.     Sleep(800);    
  52.     QueryPerformanceCounter(&large_interger);    
  53.     c2 = large_interger.QuadPart;    
  54.     printf("本机高精度计时器频率%lfn", dff);    
  55.     printf("第一次计时器值%I64d 第二次计时器值%I64d 计时器差%I64dn", c1, c2, c2 - c1);    
  56.     printf("计时%lf毫秒n", (c2 - c1) * 1000 / dff);    
  57.    
  58.        
  59.     return 0;    
  60. }    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值