thrift-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rush Manbert <>
Subject Re: AW: Re: Windows Timers - Seeking Opinions
Date Thu, 28 May 2009 18:37:50 GMT

On May 28, 2009, at 11:13 AM, Patrick Schlangen wrote:

> Hi,
>> The "Enhanced Timer" section suggests that
>> QueryPerformanceCounter should really be constant frequency. I will
>> take another look at my code that uses it, and test it again.
> the other pages state that the timer frequency changes along with  
> the CPU frequency in some cases.
> As I understood it, QPC can use different timer sources on different  
> systems (Windows picks the one it thinks to be the best), and some  
> seem to be irreliable when the CPU frequency changes (e.g. because  
> of SpeedStep/Cool'n'Quiet).
> The danger of Windows moving the process between CPUs shouldn't be a  
> major problem as it could be eliminated by binding the thread to a  
> CPU (with SetThreadAffinityMask), but the Cool'n'Quiet thing seems  
> to be what renders QueryPerformanceCounter useless.

The whole processor affinity thing seems like a big kluge to me. I  
guess the ThreadManager could round robin assign affinities, but that  
sort of defeats the OS scheduling algorithms, just to try and make  
timers be reliable. I saw one mailing list thread where a guy created  
a thread and assigned it an affinity, then used that thread as the  
tick server. Callers needed to signal a condition, then acquire a lock  
and wait on it. The server woke up, did the timer calculations, then  
signaled the waiting thread that he was done. Nice idea, but at the  
end the author said it "suffered from performance problems", which  
wasn't too surprising.

> After reading the links you sent, I still think the multimedia timer  
> (timeGetTime) is the best thing to use although using multimedia  
> libraries in a network client application feels kind of strange.

I have to agree with that. One of the pages I read was saying that  
every Adobe Air application links against Winmm. I suspect that I know  
why... :-)

- Rush

View raw message