come funziona il QueryPerformanceCounter?
codice:
#include <iostream>
#include <windows.h>
using namespace std;
int main(void){
LARGE_INTEGER freq, t1, t2, overhead;
if (QueryPerformanceFrequency(&freq))
{
QueryPerformanceCounter(&t1);
QueryPerformanceCounter(&t2);
overhead.QuadPart = t2.QuadPart - t1.QuadPart;
QueryPerformanceCounter(&t1);
for (int i = 0; i < 10; ++i)
{
// Codice loop
Sleep(100); // "Rallenta" l'esecuzione
cout << "Ciao Mondo!" << endl;
}
QueryPerformanceCounter(&t2);
cout << "Tempo impiegato: " << (double) (t2.QuadPart - t1.QuadPart - overhead.QuadPart) / freq.QuadPart << endl;
}
else cout << "Impossibile ottenere la frequenza" << endl;
return 0;
}
o più semplicemente:
codice:
#include <iostream>
#include <windows.h>
using namespace std;
int main(void){
int t1, t2;
t1 = GetTickCount();
for (int i = 0; i < 10; ++i)
{
// Codice loop
Sleep(100); // "Rallenta" l'esecuzione
cout << "Ciao Mondo!" << endl;
}
t2 = GetTickCount();
cout << "Tempo impiegato (ms): " << t2-t1 << endl;
return 0;
}