都是自己写的跨平台的小工具类,今天描述的是计时器,只是针对WINDOWS和LINUX不同平台做了简易的封装:
// by qlong_008@163.com
// 这是一个精确到微秒的计时器。
struct _time_check
{
DWORD _tstart;
DWORD _tend;
};
//
class CTimer
{
private:
struct _time_check tc;
// 开始计时。
void Start();
public:
CTimer(); // 构造函数中会调用Start方法。
// 计算已逝去的时间,单位:毫秒,小数点后面是微秒。
double Elapsed();
};
///
//计时器的实现
CTimer::CTimer()
{
// 开始计时
Start();
}
// 开始计时
void CTimer::Start()
{
#if defined(OS_WIN32)
memset (&tc, 0, sizeof (struct _time_check));
tc._tstart = GetTickCount();
#elif defined(OS_LINUX)
memset (&tc, 0, sizeof (struct _time_check));
gettimeofday (&(tc._tstart), &(tc.tz));
#endif