How to use Query Performance Counter?

Answer

#include<windows.h>doublePCFreq=0.0;
__int64 CounterStart=0;voidStartCounter(){
    LARGE_INTEGER li;if(!QueryPerformanceFrequency(&li))
	cout <<"QueryPerformanceFrequency failed!\n";PCFreq=double(li.QuadPart)/1000.0;QueryPerformanceCounter(&li);CounterStart= li.QuadPart;}doubleGetCounter(){
    LARGE_INTEGER li;QueryPerformanceCounter(&li);returndouble(li.QuadPart-CounterStart)/PCFreq;}int main(){StartCounter();Sleep(1000);
    cout <<GetCounter()<<"\n";return0;}

This program should output a number close to 1000 (windows sleep isn't that accurate, but it should be like 999).

The StartCounter() function records the number of ticks the performance counter has in the CounterStart variable. The GetCounter() function returns the number of milliseconds since StartCounter() was last called as a double, so if GetCounter() returns 0.001 then it has been about 1 microsecond since StartCounter() was called.

If you want to have the timer use seconds instead then change

PCFreq=double(li.QuadPart)/1000.0;

to

PCFreq=double(li.QuadPart);

or if you want microseconds then use

PCFreq=double(li.QuadPart)/1000000.0;

All windows Questions

Ask your interview questions on windows

Write Your comment or Questions if you want the answers on windows from windows Experts
Name* :
Email Id* :
Mob no* :
Question
Or
Comment* :
 





Disclimer: PCDS.CO.IN not responsible for any content, information, data or any feature of website. If you are using this website then its your own responsibility to understand the content of the website

--------- Tutorials ---