Hi, On Wed, Jan 26, 2005 at 08:58:13AM +0100, Rein Klazes wrote: > On 25 Jan 2005 14:22:40 -0800, you wrote: > > The application is an embedded audio plugin player. The audio is > > processed with SCHED_FIFO and needs to be as deterministic and fast as > > possible. > > > > I hope this fix/change doesn't jeopardize our product's use of Wine... > > You are of course in an excellent position to quantify better then > "extremely time critical" and "few cycles". Just try the patch and tell > us when you are "hosed". Whoa, seems like I started an avalanche with my posting ;-)
> I have done a few further tests. A loop like: > > for(i=0;i<10000000;i++) > QueryPerformanceCounter( &count); > > takes under Windows 2k, on some hardware 45 seconds. Under Wine on the > exact same hardware it takes (with the patch) 13 seconds. Wow!! I'd never have expected that. So it seems the optimized Linux syscall is just that: optimized, highly :) > If you do a series of QueryPerformanceCounter: > > QueryPerformanceCounter( carr[0]); > QueryPerformanceCounter( carr[1]); > QueryPerformanceCounter( carr[2]); > QueryPerformanceCounter( carr[3]); > QueryPerformanceCounter( carr[4]); > ... > > and print the results, I see on Windows that the counter increments 4 or > 5 steps between the calls. Under Wine it is 1 or 2. Which is obvious as well since the execution time under Wine is lower, so the deltas should be lower as well. > So in these simple benchmarks, Wine beats Windows by a factor of three. > I call that satisfactory, wishing Wine would do that in other areas as > well. Damn right! > Also note that QueryPerformanceCounter Timer takes hundreds of cycles. > In an extremely time critical application that would be hosed if it > takes more then a few cycles, I would not recommend the use of this call > at all. Yup. I'd say that the goal is not necessarily to be terribly faster than Windows; the goal is to have comparable behaviour (being much faster than Windows here can easily be a problem on its own, you bet!). As such the new implementation should be perfect. Sorry for that wonderful false alarm! ;-) (but I'd say the ensuing discussion certainly was useful) Andreas Mohr