//不好意思,困了,懒得解释了
//头文件File:TimeTool.h
#ifndef TIMETOOL_H_INCLUDED
#define TIMETOOL_H_INCLUDED
#include <windows.h>
typedef struct PfmTest
{
LARGE_INTEGER liStart;
LARGE_INTEGER liEnd;
LARGE_INTEGER liPerfFreq;
}PfmTest;
/**
*
*@case
void main()
{
printf("开始\n");
InitPfmTime();
BeginPfmTime();
for(int i = 0; i < 10000; ++i);
double timeInterval = EndPfmTime();
printf("结束,总用时:%f\n", timeInterval);
BeginPfmTime();
for(int i = 0; i < 500; ++i);
double timeInterval = EndPfmTime();
printf("结束,总用时:%f\n", timeInterval);
}
*/
void InitPfmTime();
void BeginPfmTime();
/**
*@return double 自上次调用BeginPfmTime()到本函数之间的时间间隔,单位为 秒(s).
*/
double EndPfmTime();
/**
*
*@case
void main()
{
printf("开始\n");
LARGE_INTEGER temp;
InitPfmTimeWithArg(&temp);
BeginPfmTimeWithArg(&temp);
for(int i = 0; i < 10000; ++i);
double timeInterval = EndPfmTimeWithArg(&temp);
printf("结束,总用时:%f\n", timeInterval);
BeginPfmTimeWithArg(&temp);
for(int i = 0; i < 500; ++i);
double timeInterval = EndPfmTimeWithArg(&temp);
printf("结束,总用时:%f\n", timeInterval);
}
*/
void InitPfmTimeWithArg(PfmTest * pfmTest);
void BeginPfmTimeWithArg(PfmTest * pfmTest);
double EndPfmTimeWithArg(PfmTest * pfmTest);
#endif //TIMETOOL_H_INCLUDED
//源文件File:TimeTool.cpp
#include "TimeTool.h"
static PfmTest pfmTest;
void InitPfmTime()
{
QueryPerformanceFrequency(&(pfmTest.liPerfFreq));
}
void BeginPfmTime()
{
QueryPerformanceCounter(&(pfmTest.liStart));
}
double EndPfmTime()
{
QueryPerformanceCounter(&(pfmTest.liEnd));
double timeSecond = (double)(pfmTest.liEnd.QuadPart - pfmTest.liStart.QuadPart) / (double)(pfmTest.liPerfFreq.QuadPart);
return timeSecond;
}
void InitPfmTimeWithArg(PfmTest * pfmTest)
{
QueryPerformanceFrequency(&(pfmTest->liPerfFreq));
}
void BeginPfmTimeWithArg(PfmTest * pfmTest)
{
QueryPerformanceCounter(&(pfmTest->liStart));
}
double EndPfmTimeWithArg(PfmTest * pfmTest)
{
QueryPerformanceCounter(&(pfmTest->liEnd));
double timeSecond = (double)(pfmTest->liEnd.QuadPart - pfmTest->liStart.QuadPart) / (double)(pfmTest->liPerfFreq.QuadPart);
return timeSecond;
}
//测试文件File:App.cpp
#include <stdlib.h>
#include <stdio.h>
#include "TimeTool.h"
void main()
{
printf("开始\n");
LARGE_INTEGER temp;
InitPfmTimeWithArg(&temp);
BeginPfmTimeWithArg(&temp);
for(int i = 0; i < 10000; ++i);
double timeInterval = EndPfmTimeWithArg(&temp);
printf("结束,总用时:%f\n", timeInterval);
BeginPfmTimeWithArg(&temp);
for(int i = 0; i < 500; ++i);
double timeInterval = EndPfmTimeWithArg(&temp);
printf("结束,总用时:%f\n", timeInterval);
printf("开始\n");
InitPfmTime();
BeginPfmTime();
for(int i = 0; i < 10000; ++i);
double timeInterval = EndPfmTime();
printf("结束,总用时:%f\n", timeInterval);
BeginPfmTime();
for(int i = 0; i < 500; ++i);
double timeInterval = EndPfmTime();
printf("结束,总用时:%f\n", timeInterval);
}