<div dir="ltr">Hi,<div><br></div><div>One of the differences between Chrome and Safari is that Chrome sets the setTimeout clamp to 1ms as opposed to 10ms. &nbsp;This means that if the application writer requests a timer of less than 10ms, Chrome will allow it, whereas Safari will clamp the minimum timeout to 10ms. &nbsp;The reason we did this was to minimize browser delays when running graphical javascript applications.</div>


<div><br></div><div>This has been a concern for some, so I wanted to bring it up here and get an open discussion going. &nbsp;My hope is to lower or remove the clamp over time.</div><div><br></div><div>To demonstrate the benefit, here is one test case which benefits from removing the setTimeout clamp. &nbsp;Chrome gets about a ~4x performance boost by reducing the setTimeout clamp. &nbsp;This programming pattern in javascript is very common.</div>


<div><br></div><div><a href="http://www.belshe.com/test/sort/sort.html" target="_blank">&nbsp;&nbsp; http://www.belshe.com/test/sort/sort.html</a><br></div><div><br></div><div>One counter argument brought up is a claim that all other browsers use a 10ms clamp, and this might cause incompatibilities. &nbsp;However, it turns out that browsers already use widely varying values. &nbsp;We also really haven&#39;t seen any incompatibilities due to this change. &nbsp;It is true that having a lower clamp can provide an easy way for web developers to accidentally spin the CPU, and we have seen one high-profile instance of this. &nbsp;But of course spinning the CPU can be done in javascript all by itself :-)</div>


<div><br></div><div>Here is a summary of the minimum timeout for existing browsers (you can test your browser with this page:&nbsp;<a href="http://www.belshe.com/test/timers.html" target="_blank">http://www.belshe.com/test/timers.html )</a></div>


<div>Safari for the mac: &nbsp; 10ms</div><div>Safari for windows: &nbsp; &nbsp;15.6ms</div><div>Firefox: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 10ms or 15.6ms, depending on whether or not Flash is running on the system</div><div>IE : &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 15.6ms</div>


<div>Chrome: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1ms (future - remove the clamp?)</div><div><br></div><div>So here are a couple of options:<br>&nbsp;&nbsp; 1) Remove or lower the clamp so that javascript apps can run substantially faster.</div><div>
&nbsp;&nbsp; 2) Keep the clamp and let them run slowly :-)</div>

<div><br></div><div>Thoughts? &nbsp;It would be great to see Safari and Chrome use the same clamping values.</div><div><br></div><div>Thanks,</div><div>Mike<br></div><div><br></div><div><br></div><div><br></div><div><br></div>
<div><br></div><div><br></div><div><br></div></div>