C++利用QueryPerformanceCounter计算代码运行时间

// 在Xtimer.h中定义。

#pragma once

#define _X_TIMER_CREATE(Alias) \
LARGE_INTEGER _d_timer_##Alias##_start_at = {0}; \
LARGE_INTEGER _d_timer_##Alias##_stop_at = {0}; \
LARGE_INTEGER _d_timer_##Alias##_time = {0}; \
UINT _d_timer_##Alias##_run_times = 0;

#define _X_TIMER_RESET(Alias) \
_d_timer_##Alias##_time.QuadPart = 0; \
_d_timer_##Alias##_run_times = 0;

#define _X_TIMER_START(Alias) \
QueryPerformanceCounter(&_d_timer_##Alias##_start_at); \
_d_timer_##Alias##_run_times++;

#define _X_TIMER_PAUSE(Alias) \
QueryPerformanceCounter(&_d_timer_##Alias##_stop_at); \
_d_timer_##Alias##_time.QuadPart += _d_timer_##Alias##_stop_at.QuadPart - _d_timer_##Alias##_start_at.QuadPart;

#define _X_TIMER_REPORT(Alias) \
TRACE(_T("xTimer[") _T(#Alias) _T("] use %d K PFT, "), _d_timer_##Alias##_time.QuadPart >> 10); \
TRACE(_T("runs %d times.\n"), _d_timer_##Alias##_run_times);

#define _X_TIMER_DECLARE(Alias) \
extern LARGE_INTEGER _d_timer_##Alias##_start_at; \
extern LARGE_INTEGER _d_timer_##Alias##_stop_at; \
extern LARGE_INTEGER _d_timer_##Alias##_time; \
extern UINT _d_timer_##Alias##_run_times;

说明:使用时候只要包只要在使用的地方将 Xtimer.h包含一下即可,使用方法如下:

_X_TIMER_DECLARE(RunTime)
_X_TIMER_CREATE(RunTime)
//_X_TIMER_RESET(RunTime)
_X_TIMER_START(RunTime)
// This is the Code which you need to get it's run time.
_X_TIMER_PAUSE(RunTime)
_X_TIMER_REPORT(RunTime)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值