/*
* PerformanceCounter.h
* Copyright (c) 2011 Antillia.com TOSHIYUKI ARAI. ALL RIGHTS RESERVED.
*/
// SOL9
// 2009/05/21
#pragma once
#include <sol/Object.h>
namespace SOL {
class PerformanceCounter :public Object {
private:
LARGE_INTEGER frequency;
LARGE_INTEGER before;
LARGE_INTEGER after;
public:
/**
*
*/
PerformanceCounter()
{
memset(&frequency, 0, sizeof(frequency));
memset(&before, 0, sizeof(before));
memset(&after, 0, sizeof(after));
QueryPerformanceFrequency(&frequency);
}
public:
void start()
{
memset(&before, 0, sizeof(before));
memset(&after, 0, sizeof(after));
QueryPerformanceCounter(&before);
}
public:
void stop()
{
QueryPerformanceCounter(&after);
}
public:
DWORD getSeconds()
{
return (DWORD)((after.QuadPart - before.QuadPart) / frequency.QuadPart);
}
public:
DWORD getMilliseconds()
{
return (DWORD)((after.QuadPart - before.QuadPart)*1000 / frequency.QuadPart);
}
};
}
|