【c++】获取函数运行时间的两种方法

1.GetTickCount()

GetTickCount是windows下的API 函数,检索自系统启动以来经过的毫秒数,最多为49.7天

//头文件
#include <windows.h>
//函数原型
DWORD WINAPI GetTickCount(void);
//返回值
	系统启动后经过的毫秒数

测试代码:

#include <iostream>
#include <ctime>
#include <windows.h>

using namespace std;

void fun()
{
	for(int i=1;i<100000000;i++)
	{
		
	}
}

int main()
{
	DWORD begin=0;
	DWORD end=0;
	DWORD time=0;

	begin=GetTickCount();
	fun();
	end=GetTickCount();

	time=end-begin;

	cout<<time<<endl;
	return 0;
}
2.clock()

clock()函数是c++库里的函数,它返回程序启动后经过的时钟节拍数,CLOCKS_PER_SEC 这个宏扩展为一个表达式,表示一秒钟内时钟节拍数,由函数时钟返回。用这个表达式除以时钟节拍数就得到秒数。

//头文件
#include <ctime>
//函数原型
clock_t clock(void);
//返回值
	自程序启动以来,时钟滴答数一直在增加
	在失败时,返回-1
	clock_t是定义的一种类型,可以表示时钟滴答数并支持算数运算(通常是长整数)

测试代码如下:

#include <iostream>
#include <ctime>
#include <windows.h>

using namespace std;

void fun()
{
	for(int i=1;i<100000000;i++)
	{
		
	}
}

int main()
{
	int begin=0;
	int end=0;
	int time=0;

	begin=clock();
	fun();
	end=clock();

	time=(end-begin)/CLOCKS_PER_SEC;

	cout<<time<<endl;
	return 0;
}
#include <windows.h>
class Time
{
public:
	Time()
	{
		QueryPerformanceFrequency(&_nFreq);
		QueryPerformanceCounter(&_nBeginTime);
	}

	~Time()
	{
		LARGE_INTEGER _nEndTime;
		QueryPerformanceCounter(&_nEndTime);
		
		cout<<(_nEndTime.QuadPart -_nBeginTime.QuadPart )/_nFreq.QuadPart <<endl;
	}
private:
	LARGE_INTEGER _nFreq;
	LARGE_INTEGER _nBeginTime;
};

#ifdef _DEBUG
#define GET_TIME Time t
#else 
#define GET_TIME
#endif

void Test()
{
	GET_TIME;
	Sleep(2000);
}
int main()
{
	Test();
	return 0;
}




  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值