Very interesting! I never thought about the effect that other applications
might have on JavaScript timers. Thanks for posting that. (BTW, do you
prefer to go by Pops or Hector?)

Here is something that may be useful in conjunction with your program. A
couple of weeks ago when Yehuda was working on iPhone scrolling, I wrote a
little test page that logs the timing for several repeats of setInterval()
and setTimeout(), using intervals of 0, 1, and 100 milliseconds.

http://mg.to/test/interval/

On IE, setInterval(0) does not work, so the page skips that test.

All the Windows browsers show the minimum 15ms time just like you said. On
the Mac, Firefox shows a minimum setTimeout in the 3-4ms range, and a
minimum setInterval around 11ms. Safari shows some 0ms timings for both
setInterval(0) and setTimeout(0). iPhone has a minimum 10ms on setInterval.

Anyway, I hope that's helpful in any timer investigations.

-Mike

> From: Pops
> 
> I am interested to hear any test reports for jQuery applications that
> are using AJAX,  any animation for PCs that might have altered the
> system timer resolution.
> 
> I posted an entry at my blog with discussing this, with a C/C++
> utility you can use to test to see how your applications behave in
> normal sleep mode vs "fast Sleep" mode.
> 
> http://santronics.blogspot.com/
> 
> Here is the fastsleep.cpp comments:
> 
> // Utility to toggle the PC with Windows OS multi-media
> // resolution that speeds up the Sleep() quantum.
> //
> // All PC has a quantum of 10-15ms regardless of the
> // sleep value. Assuming the PC is 15ms, if you use
> // Sleep(1), the time slice is 15ms. Sleep(18) is 30ms,
> // and so on.
> //
> // This utility allows you to toggle the resolution
> // to 1 ms.  The actual delay is shown by this utility.
> //
> // Why?
> //
> // This can change the behavior of your applications
> // which depends on timers, like many of the Web 2.0
> // Javascript applications.  In Windows, the multi media
> // function timeBeginPeriod() changes the resolution
> // for the entire system.  So if some other application
> // is running with timeBeginPeriod(1) enabled, this
> // will have a drastic effect on your Web 2.0 application.
> // It may behave better, it may behave unexpectedly worst.
> // It might explain someone reported to you, "hey this
> // is not running right."  But others don't see this,
> // and you can't repeat it, so you just blew the report
> // away.    This utility can be use to design your
> // application properly under all conditions.
> 
> --
> HLS
> 

Reply via email to