<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Finding the OS X Turbo Button</title>
	<atom:link href="http://blog.vlad1.com/2008/02/28/finding-the-os-x-turbo-button/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.vlad1.com/2008/02/28/finding-the-os-x-turbo-button/</link>
	<description>Look, it's a tagline!</description>
	<pubDate>Mon, 12 May 2008 08:49:01 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>By: Firefox, WebKit, and Coalesced Updates</title>
		<link>http://blog.vlad1.com/2008/02/28/finding-the-os-x-turbo-button/#comment-1102</link>
		<dc:creator>Firefox, WebKit, and Coalesced Updates</dc:creator>
		<pubDate>Fri, 21 Mar 2008 14:29:51 +0000</pubDate>
		<guid isPermaLink="false">http://blog.vlad1.com/2008/02/28/finding-the-os-x-turbo-button/#comment-1102</guid>
		<description>[...] a Mac programmer it&#8217;s interesting to read this investigation as to why Firefox 2 didn&#8217;t suffer from the same frame rate cap that was being seen in Firefox [...]</description>
		<content:encoded><![CDATA[<p>[...] a Mac programmer it&#8217;s interesting to read this investigation as to why Firefox 2 didn&#8217;t suffer from the same frame rate cap that was being seen in Firefox [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Firefox 3 ultimate feature: Performance - DN For United Mankind Forum</title>
		<link>http://blog.vlad1.com/2008/02/28/finding-the-os-x-turbo-button/#comment-1072</link>
		<dc:creator>Firefox 3 ultimate feature: Performance - DN For United Mankind Forum</dc:creator>
		<pubDate>Thu, 20 Mar 2008 11:42:06 +0000</pubDate>
		<guid isPermaLink="false">http://blog.vlad1.com/2008/02/28/finding-the-os-x-turbo-button/#comment-1072</guid>
		<description>[...] also benefit from it before the final release. Another improvement came a few weeks ago as told by Vladimir Vukicevic thanks to the discovery of an undocumented Mac OS X interface that will now help Firefox do some [...]</description>
		<content:encoded><![CDATA[<p>[...] also benefit from it before the final release. Another improvement came a few weeks ago as told by Vladimir Vukicevic thanks to the discovery of an undocumented Mac OS X interface that will now help Firefox do some [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andando entrebits &#187; Los estándares según los navegadores</title>
		<link>http://blog.vlad1.com/2008/02/28/finding-the-os-x-turbo-button/#comment-1066</link>
		<dc:creator>Andando entrebits &#187; Los estándares según los navegadores</dc:creator>
		<pubDate>Thu, 20 Mar 2008 08:06:43 +0000</pubDate>
		<guid isPermaLink="false">http://blog.vlad1.com/2008/02/28/finding-the-os-x-turbo-button/#comment-1066</guid>
		<description>[...] que usan Firefox y que decir de Safari, ambos navegadores son alternativas muy atractivas, aunque Apple a veces también toma malas decisiones para sacar ventaja de su navegador en su sistema operativo, aunque creo que no lo necesita ya que [...]</description>
		<content:encoded><![CDATA[<p>[...] que usan Firefox y que decir de Safari, ambos navegadores son alternativas muy atractivas, aunque Apple a veces también toma malas decisiones para sacar ventaja de su navegador en su sistema operativo, aunque creo que no lo necesita ya que [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Apple podría ocultar ‘trucos’ no documentados para favorecer sus desarrollos &#124; SomosMac</title>
		<link>http://blog.vlad1.com/2008/02/28/finding-the-os-x-turbo-button/#comment-933</link>
		<dc:creator>Apple podría ocultar ‘trucos’ no documentados para favorecer sus desarrollos &#124; SomosMac</dc:creator>
		<pubDate>Fri, 14 Mar 2008 12:48:31 +0000</pubDate>
		<guid isPermaLink="false">http://blog.vlad1.com/2008/02/28/finding-the-os-x-turbo-button/#comment-933</guid>
		<description>[...] Vlad1 Blog   Rumores, Apple, Desarrolladores, empresa, firefox, rendimiento, Software, [...]</description>
		<content:encoded><![CDATA[<p>[...] Vlad1 Blog   Rumores, Apple, Desarrolladores, empresa, firefox, rendimiento, Software, [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: meneame.net</title>
		<link>http://blog.vlad1.com/2008/02/28/finding-the-os-x-turbo-button/#comment-910</link>
		<dc:creator>meneame.net</dc:creator>
		<pubDate>Thu, 13 Mar 2008 12:15:02 +0000</pubDate>
		<guid isPermaLink="false">http://blog.vlad1.com/2008/02/28/finding-the-os-x-turbo-button/#comment-910</guid>
		<description>&lt;strong&gt;Apple oculta secretos a los programadores para favorecer sus desarrollos  [ENG]&lt;/strong&gt;

Bueno, por lo que se ve &#34;en todos los lados cuecen habas&#34;, y no sólo en Microsoft como se suele comentar. El caso es que un programador llamado Vladimir Vukicevic, un programador de FireFox, ha descubierto que Apple utiliza funciones no docu...</description>
		<content:encoded><![CDATA[<p><strong>Apple oculta secretos a los programadores para favorecer sus desarrollos  [ENG]</strong></p>
<p>Bueno, por lo que se ve &quot;en todos los lados cuecen habas&quot;, y no sólo en Microsoft como se suele comentar. El caso es que un programador llamado Vladimir Vukicevic, un programador de FireFox, ha descubierto que Apple utiliza funciones no docu&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: shaver &#187; year of the Gecko</title>
		<link>http://blog.vlad1.com/2008/02/28/finding-the-os-x-turbo-button/#comment-900</link>
		<dc:creator>shaver &#187; year of the Gecko</dc:creator>
		<pubDate>Thu, 13 Mar 2008 02:00:57 +0000</pubDate>
		<guid isPermaLink="false">http://blog.vlad1.com/2008/02/28/finding-the-os-x-turbo-button/#comment-900</guid>
		<description>[...] better allocator. And we didn&#8217;t stop there, dropping the hammer on major performance gains in rendering and JavaScript as well, and leaving us as of today right at the top of tests like Apple&#8217;s [...]</description>
		<content:encoded><![CDATA[<p>[...] better allocator. And we didn&#8217;t stop there, dropping the hammer on major performance gains in rendering and JavaScript as well, and leaving us as of today right at the top of tests like Apple&#8217;s [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: iPhone SDK 未見製成品先見爭議 at MacGrass</title>
		<link>http://blog.vlad1.com/2008/02/28/finding-the-os-x-turbo-button/#comment-889</link>
		<dc:creator>iPhone SDK 未見製成品先見爭議 at MacGrass</dc:creator>
		<pubDate>Wed, 12 Mar 2008 01:38:45 +0000</pubDate>
		<guid isPermaLink="false">http://blog.vlad1.com/2008/02/28/finding-the-os-x-turbo-button/#comment-889</guid>
		<description>[...] Firefox 的開發員批評，指 Webkit （ Safari 內核）在 Mac OS X 永遠比  Firefox 3 [...]</description>
		<content:encoded><![CDATA[<p>[...] Firefox 的開發員批評，指 Webkit （ Safari 內核）在 Mac OS X 永遠比  Firefox 3 [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kristleifur</title>
		<link>http://blog.vlad1.com/2008/02/28/finding-the-os-x-turbo-button/#comment-865</link>
		<dc:creator>Kristleifur</dc:creator>
		<pubDate>Sun, 09 Mar 2008 13:10:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.vlad1.com/2008/02/28/finding-the-os-x-turbo-button/#comment-865</guid>
		<description>@Mecki78: Exactly.

I think that this is what "roc's Compositor design" will add to Firefox, but information is scarce.</description>
		<content:encoded><![CDATA[<p>@Mecki78: Exactly.</p>
<p>I think that this is what &#8220;roc&#8217;s Compositor design&#8221; will add to Firefox, but information is scarce.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mecki78</title>
		<link>http://blog.vlad1.com/2008/02/28/finding-the-os-x-turbo-button/#comment-801</link>
		<dc:creator>Mecki78</dc:creator>
		<pubDate>Wed, 05 Mar 2008 13:03:29 +0000</pubDate>
		<guid isPermaLink="false">http://blog.vlad1.com/2008/02/28/finding-the-os-x-turbo-button/#comment-801</guid>
		<description>Actually, to make my post more verbose to programmers:

Right now Fx works like this:

1) WHILE moreToDo
2) doIt()
3) repaint()
4) END WHILE

But that is wrong. Repaint could "hang" because it's waiting for a screen refresh. Correct would be

1) WHILE moreToDo
2) WHILE notRepaintNecessary AND moreToDo
3) doIt();
4) END WHILE
5) repaint();
6) END WHILE

That way you would only repaint if it makes sense to repaint and the fact that the maximum number of repaints a second is limited does not limit the execution speed of doIt().</description>
		<content:encoded><![CDATA[<p>Actually, to make my post more verbose to programmers:</p>
<p>Right now Fx works like this:</p>
<p>1) WHILE moreToDo<br />
2) doIt()<br />
3) repaint()<br />
4) END WHILE</p>
<p>But that is wrong. Repaint could &#8220;hang&#8221; because it&#8217;s waiting for a screen refresh. Correct would be</p>
<p>1) WHILE moreToDo<br />
2) WHILE notRepaintNecessary AND moreToDo<br />
3) doIt();<br />
4) END WHILE<br />
5) repaint();<br />
6) END WHILE</p>
<p>That way you would only repaint if it makes sense to repaint and the fact that the maximum number of repaints a second is limited does not limit the execution speed of doIt().</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mecki78</title>
		<link>http://blog.vlad1.com/2008/02/28/finding-the-os-x-turbo-button/#comment-798</link>
		<dc:creator>Mecki78</dc:creator>
		<pubDate>Wed, 05 Mar 2008 11:30:41 +0000</pubDate>
		<guid isPermaLink="false">http://blog.vlad1.com/2008/02/28/finding-the-os-x-turbo-button/#comment-798</guid>
		<description>Sorry, but something is terribly wrong here. If an app runs slower, because the system limits the refresh rate, the app is broken by design (as hard as this is when I have to say it about my favorite browser). It's completely moronic to paint more images than can be shown according to refresh rate. This leads to many images being painted, that never show up on the display in the first place. What a waste of CPU time.

If I understand you right, the test in question is: I run a for loop, that scrolls the page down by one pixel each time. Now each time it scrolls, you issue a repaint, wait for the repaint to complete and then continue the loop. Since these repaints can't complete faster than the refresh rate (by default, without using the hack you are currently using), the loop now runs slower. Correct? If yes, then this is broken by design. The whole repainting should by asynchron, which is a hundred times better fix than the one you found.

Case A
The for loop should not wait for the repaint to actually happen, it should just request to scroll one pixel and then request the repaint and continue immediately, even if the repaint did not happen. Then it should again request to scroll one pixel and request a repaint - however, this request is ignored, because a repaint is already requested. So far nothing has been re-painted and twice scrolling one pixel should be requested. The third time the loop runs it's like the second time and so on and so on. Maybe the 8th time the loop is running, the repaint is finally taking place. Now the repaint will repaint once and will immediately scroll the page by 8 pixels. And the whole game starts again.

Case B
Right now you are scrolling one line and repaiting, one line and repaiting, one line and repainting and none of these repaints are ever shown on screen. After the 8th time you are scrolling and repainting, the screen refresh takes place and this repaint is finally visibly.

Both, Case A and B will have a repaint that scrolled by 8th pixels shown on the screen as first image after the loop started. But in Case A, only one repaint was done. In Case B, 7 were done that never showed up anywhere and the 8th one is now visible. Case A is thus plenty of times more effective than Case B.</description>
		<content:encoded><![CDATA[<p>Sorry, but something is terribly wrong here. If an app runs slower, because the system limits the refresh rate, the app is broken by design (as hard as this is when I have to say it about my favorite browser). It&#8217;s completely moronic to paint more images than can be shown according to refresh rate. This leads to many images being painted, that never show up on the display in the first place. What a waste of CPU time.</p>
<p>If I understand you right, the test in question is: I run a for loop, that scrolls the page down by one pixel each time. Now each time it scrolls, you issue a repaint, wait for the repaint to complete and then continue the loop. Since these repaints can&#8217;t complete faster than the refresh rate (by default, without using the hack you are currently using), the loop now runs slower. Correct? If yes, then this is broken by design. The whole repainting should by asynchron, which is a hundred times better fix than the one you found.</p>
<p>Case A<br />
The for loop should not wait for the repaint to actually happen, it should just request to scroll one pixel and then request the repaint and continue immediately, even if the repaint did not happen. Then it should again request to scroll one pixel and request a repaint - however, this request is ignored, because a repaint is already requested. So far nothing has been re-painted and twice scrolling one pixel should be requested. The third time the loop runs it&#8217;s like the second time and so on and so on. Maybe the 8th time the loop is running, the repaint is finally taking place. Now the repaint will repaint once and will immediately scroll the page by 8 pixels. And the whole game starts again.</p>
<p>Case B<br />
Right now you are scrolling one line and repaiting, one line and repaiting, one line and repainting and none of these repaints are ever shown on screen. After the 8th time you are scrolling and repainting, the screen refresh takes place and this repaint is finally visibly.</p>
<p>Both, Case A and B will have a repaint that scrolled by 8th pixels shown on the screen as first image after the loop started. But in Case A, only one repaint was done. In Case B, 7 were done that never showed up anywhere and the 8th one is now visible. Case A is thus plenty of times more effective than Case B.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
