SOL9 2.0 Class: PerformanceCounter

 SOL9 C++ Class Library  SOL9 Samples  SOL9 Tutorial  SOL9 FAQ  SOL9 ClassTree 

Source code

/*
 * 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);
    }


};

}

Last modified: 1 Feb 2012

Copyright (c) 2009-2012 Antillia.com ALL RIGHTS RESERVED.