[webkit-dev] setTimeout as browser speed throttle

Mike Belshe mike at belshe.com
Tue Sep 30 11:23:51 PDT 2008


>
>
>  BTW - if the primary concern is not spinning the CPU, we could just drop
>> the throttle down to 2 or 3ms, and the CPU will be largely idle on most
>> machines.  In a few years, with faster processors, we'll be able to drop to
>> 1ms and still have largely idle CPU.
>>
>> Would 3ms be viable in your eyes?
>>
>>
> Yes, I was considering this also.  To me the primary issue with removing
> the setTimeout clamp is CPU hogging and not animation speed.  I do think
> lowering the clamp is reasonable.  I still think we should have an unclamped
> high res timer API though, regardless of what we decide with setTimeout.
>

OK - I created a second version of my timer test to help with testing of
this.  (these are only interesting tests to run on browsers which unclamp
the timers)

Here is the test I created before:  http://www.belshe.com/test/timers.html
The problem is that this will use lots of CPU just doing paints (it paints
with every iteration).  Most background spinners don't have this property.

http://www.belshe.com/test/timers2.html<http://www.belshe.com/test/timers.html>
This case only updates the UI every 1000 iterations.  With this test, the
CPU load is almost zero even with a 2ms timer.

Using a slightly more conservative minimum should account for slower
processors and also allow for a little more work to be done in the
setInterval loop.

Regarding the API - yes.  I'd like the units of time for the new API to be
at most measured in microseconds; 100-nanos might be more forward-thinking.

Mike
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.webkit.org/pipermail/webkit-dev/attachments/20080930/2eea1efe/attachment.html 


More information about the webkit-dev mailing list