76 lines
2.0 KiB
C++
76 lines
2.0 KiB
C++
// stdafx.h : include file for standard system include files,
|
||
// or project specific include files that are used frequently, but
|
||
// are changed infrequently
|
||
//
|
||
|
||
#if !defined(AFX_STDAFX_H__46CA6496_AAD6_4658_B6E9_D7AEB26CDCD5__INCLUDED_)
|
||
#define AFX_STDAFX_H__46CA6496_AAD6_4658_B6E9_D7AEB26CDCD5__INCLUDED_
|
||
|
||
// 是否使用ZLIB
|
||
#define USING_ZLIB 1
|
||
|
||
#if !USING_ZLIB
|
||
// 是否使用LZ4
|
||
#define USING_LZ4 1
|
||
#endif
|
||
|
||
#if _MSC_VER > 1000
|
||
#pragma once
|
||
#endif // _MSC_VER > 1000
|
||
|
||
// 检测内存泄漏,需安装VLD;否则请注释此行
|
||
#include "vld.h"
|
||
|
||
// Insert your headers here
|
||
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
|
||
|
||
#include <windows.h>
|
||
|
||
// TODO: reference additional headers your program requires here
|
||
|
||
//{{AFX_INSERT_LOCATION}}
|
||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||
|
||
#endif // !defined(AFX_STDAFX_H__46CA6496_AAD6_4658_B6E9_D7AEB26CDCD5__INCLUDED_)
|
||
|
||
#include <assert.h>
|
||
#include <MMSystem.h>
|
||
#pragma comment(lib, "winmm.lib")
|
||
|
||
// 高精度的睡眠函数
|
||
#define Sleep_m(ms) { timeBeginPeriod(1); Sleep(ms); timeEndPeriod(1); }
|
||
|
||
// 以步长n毫秒在条件C下等待T秒(n是步长,必须能整除1000)
|
||
#define WAIT_n(C, T, n) {assert(!(1000%(n)));int s=(1000*(T))/(n);do{Sleep(n);}while((C)&&(--s));}
|
||
|
||
// 在条件C成立时等待T秒(步长10ms)
|
||
#define WAIT(C, T) { timeBeginPeriod(1); WAIT_n(C, T, 10); timeEndPeriod(1); }
|
||
|
||
// 在条件C成立时等待T秒(步长1ms)
|
||
#define WAIT_1(C, T) { timeBeginPeriod(1); WAIT_n(C, T, 1); timeEndPeriod(1); }
|
||
|
||
#include <time.h>
|
||
#include <stdio.h>
|
||
|
||
// 智能计时器,计算函数的耗时
|
||
class auto_tick
|
||
{
|
||
private:
|
||
const char *func;
|
||
int threshold;
|
||
clock_t tick;
|
||
__inline clock_t now() const { return clock(); }
|
||
|
||
public:
|
||
auto_tick(const char *func_name, int th=5) : func(func_name), threshold(th), tick(now()) { }
|
||
~auto_tick() {int s(this->time());if(s>threshold)printf("[%s]执行时间: [%d]ms.\n", func, s);}
|
||
__inline int time() const { return now() - tick; }
|
||
};
|
||
|
||
#ifdef _DEBUG
|
||
// 智能计算当前函数的耗时,超时会打印
|
||
#define AUTO_TICK(thresh) auto_tick TICK(__FUNCTION__, thresh)
|
||
#else
|
||
#define AUTO_TICK(thresh)
|
||
#endif
|