#include <iostream>
#include <ctime>
using std::cout;
using std::endl;
int main()
{
clock_t start = clock();
while(clock() < (CLOCKS_PER_SEC * 20) + start)
{
//Code
}
cout << "Time's up." << endl;
return 0;
}
Accurate Timer
I wanted a timer for 20 seconds
I wrote this code but it eats up lot of my CPU time...any other efficient way to handle this on windows.
If you wanted to wait that long, while doing something else useful in the meantime, you could use one of the system time querying functions, and wait until the difference becomes 20 secs. timeGetTime() seems to be the easiest to use.
Also note that if you want it to be accurate, Sleep() is not the way to go, since it'll sleep for at least the time specified. So if you pass in 20000ms, it may end up waiting for 20500ms or something.
If it's not needed to be too accurate then it's not a problem though.
If it's not needed to be too accurate then it's not a problem though.
To make the list complete, I'll throw in QueryPerformanceCounter().
I think, now we've covered all popular options.
I think, now we've covered all popular options.
>So if you pass in 20000ms, it may end up waiting for 20500ms or something.
Last time I cheched it - on my machine - it was acurate to around 1ms (win2k)
>I think, now we've covered all popular options.
You forgot the good old 'rdtsc' :)
Last time I cheched it - on my machine - it was acurate to around 1ms (win2k)
>I think, now we've covered all popular options.
You forgot the good old 'rdtsc' :)
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement