测试程序的运行时间

在平时代码的运行中,度量一段程序效率的快慢一般都是通过计算该段程序运行的时间作为一个衡量的标准,在C中有Clock函数可以帮我们完成这个工作,对于精度要求更高的测量,则可以通过QueryPerformanceFrequency和QueryPerformanceCount来进行。程序很简单,如下:

//利用QueryPerformanceFrequency和QueryPerformanceCounter进行运行时间测试

#include <iostream>
//#include "time.h"
#include <windows.h>

using namespace std;

int main( )
{

  LARGE_INTEGER m_liPerfFreq = {0};
  QueryPerformanceFrequency( &m_liPerfFreq );

  LARGE_INTEGER m_liPerfStart = {0};
  QueryPerformanceCounter( &m_liPerfStart );	  
  
  for ( int i = 0; i < 100; i++ )
  {
    cout   << i <<   endl;
  }
  
  LARGE_INTEGER liPerfNow = {0};
  QueryPerformanceCounter( &liPerfNow );

  int time=( ((liPerfNow.QuadPart - m_liPerfStart.QuadPart) * 1000)/m_liPerfFreq.QuadPart); 
  TCHAR buffer[100];
  wsprintf(buffer, L"执行时间 %d millisecond   ",time); 
  MessageBox(NULL,buffer, L"计算时间 ",MB_OK); 

  return 0;
}

//利用Clock进行运行时间测试

#include <iostream>
#include "time.h"
//#include <windows.h>

using namespace std;

int main( )
{
  long start = 0;
  long end = 0;

  start = clock();
  for ( int i = 0; i < 100; i++ )
  {
    cout   << i <<   endl;
  }
  end = clock();

  int time = start - end;	//这样不成负数了?end - start 才对吧?
  TCHAR   buffer[100];
  wsprintf(buffer, L"執行時間   %d   millisecond   ",time); 
  MessageBox(NULL,buffer, L"計算時間 ",MB_OK); 

  return 0;
}


你可能感兴趣的:(c,工作,测试,null,Integer,buffer)