<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: WebKit’s JS Interpreter was an AST walker</title>
	<atom:link href="http://surana.wordpress.com/2008/06/04/webkit%e2%80%99s-js-interpreter-is-shockingly-slow/feed/" rel="self" type="application/rss+xml" />
	<link>http://surana.wordpress.com/2008/06/04/webkit%e2%80%99s-js-interpreter-is-shockingly-slow/</link>
	<description>"glossing over detail for the sake of time or clarity"</description>
	<lastBuildDate>Thu, 03 Dec 2009 14:45:18 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Pinku</title>
		<link>http://surana.wordpress.com/2008/06/04/webkit%e2%80%99s-js-interpreter-is-shockingly-slow/#comment-67</link>
		<dc:creator>Pinku</dc:creator>
		<pubDate>Thu, 05 Jun 2008 14:16:27 +0000</pubDate>
		<guid isPermaLink="false">http://surana.wordpress.com/2008/06/04/webkit%e2%80%99s-js-interpreter-is-shockingly-slow/#comment-67</guid>
		<description>Thanks for your comments. Rather than describe WebKit&#039;s interpreter as &quot;slow&quot;, I should have said &quot;an architecture that is known to be slow&quot;. But then it&#039;s faster than existing bytecode interpreters, which means the others are doing something terribly wrong. I should take a look at SpiderMonkey to see what&#039;s going on in there.</description>
		<content:encoded><![CDATA[<p>Thanks for your comments. Rather than describe WebKit&#8217;s interpreter as &#8220;slow&#8221;, I should have said &#8220;an architecture that is known to be slow&#8221;. But then it&#8217;s faster than existing bytecode interpreters, which means the others are doing something terribly wrong. I should take a look at SpiderMonkey to see what&#8217;s going on in there.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Rowe</title>
		<link>http://surana.wordpress.com/2008/06/04/webkit%e2%80%99s-js-interpreter-is-shockingly-slow/#comment-66</link>
		<dc:creator>Mark Rowe</dc:creator>
		<pubDate>Wed, 04 Jun 2008 21:09:52 +0000</pubDate>
		<guid isPermaLink="false">http://surana.wordpress.com/2008/06/04/webkit%e2%80%99s-js-interpreter-is-shockingly-slow/#comment-66</guid>
		<description>Oh, and it seems a little strange to pick on JavaScriptCore&#039;s *old* interpreter when the new interpreter design matches quite closely with what you describe as being a better approach.</description>
		<content:encoded><![CDATA[<p>Oh, and it seems a little strange to pick on JavaScriptCore&#8217;s *old* interpreter when the new interpreter design matches quite closely with what you describe as being a better approach.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Rowe</title>
		<link>http://surana.wordpress.com/2008/06/04/webkit%e2%80%99s-js-interpreter-is-shockingly-slow/#comment-65</link>
		<dc:creator>Mark Rowe</dc:creator>
		<pubDate>Wed, 04 Jun 2008 21:09:13 +0000</pubDate>
		<guid isPermaLink="false">http://surana.wordpress.com/2008/06/04/webkit%e2%80%99s-js-interpreter-is-shockingly-slow/#comment-65</guid>
		<description>Ruby is another popular interpreter that makes use of AST-walking as its primary means of execution.  As you mention, it is a very naive approach to performance and there are higher-performance alternatives available.  That said, WebKit&#039;s old JavaScript interpreter was as as fast or faster than the other JavaScript implementations on all benchmarks (Mozilla, Opera, IE, etc). 

A better direction for thought may be why the naive AST-walking interpreter that JavaScriptCore previously used is as fast (and often faster) than the more &quot;advanced&quot; designs used in the interpreters of Mozilla, Opera and IE.</description>
		<content:encoded><![CDATA[<p>Ruby is another popular interpreter that makes use of AST-walking as its primary means of execution.  As you mention, it is a very naive approach to performance and there are higher-performance alternatives available.  That said, WebKit&#8217;s old JavaScript interpreter was as as fast or faster than the other JavaScript implementations on all benchmarks (Mozilla, Opera, IE, etc). </p>
<p>A better direction for thought may be why the naive AST-walking interpreter that JavaScriptCore previously used is as fast (and often faster) than the more &#8220;advanced&#8221; designs used in the interpreters of Mozilla, Opera and IE.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Oliver</title>
		<link>http://surana.wordpress.com/2008/06/04/webkit%e2%80%99s-js-interpreter-is-shockingly-slow/#comment-64</link>
		<dc:creator>Oliver</dc:creator>
		<pubDate>Wed, 04 Jun 2008 20:14:21 +0000</pubDate>
		<guid isPermaLink="false">http://surana.wordpress.com/2008/06/04/webkit%e2%80%99s-js-interpreter-is-shockingly-slow/#comment-64</guid>
		<description>Errr, the old interpreter was not &quot;slow&quot;, in fact it was the fastest JavaScript interpreter out there (WebKit3.1 has the fastest released interpreter, and the nightlies prior to merging SquirrelFish were the fast unreleased JS interpreter).

That SquirrelFish is even faster does not change the fact that the old interpreter was fast.</description>
		<content:encoded><![CDATA[<p>Errr, the old interpreter was not &#8220;slow&#8221;, in fact it was the fastest JavaScript interpreter out there (WebKit3.1 has the fastest released interpreter, and the nightlies prior to merging SquirrelFish were the fast unreleased JS interpreter).</p>
<p>That SquirrelFish is even faster does not change the fact that the old interpreter was fast.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Maciej Stachowiak</title>
		<link>http://surana.wordpress.com/2008/06/04/webkit%e2%80%99s-js-interpreter-is-shockingly-slow/#comment-63</link>
		<dc:creator>Maciej Stachowiak</dc:creator>
		<pubDate>Wed, 04 Jun 2008 19:59:38 +0000</pubDate>
		<guid isPermaLink="false">http://surana.wordpress.com/2008/06/04/webkit%e2%80%99s-js-interpreter-is-shockingly-slow/#comment-63</guid>
		<description>While bytecode is a better architecture, note that the old AST interpreter was highly optimized and achieved speed comparable to the fairly well optimized SpiderMonkey bytecode interpreter for JavaScript (and beat the pants off of Opera&#039;s and IE&#039;s bytecode interpreters). It&#039;s not just the architecture that matters, it is the implementation quality. So if you want to throw around terms like &quot;shockingly slow&quot;, I would say you should base it on measurements, not theory based on the architecture. You would be surprised how much it is possible to speed up a tree-based interpreter.

(As another example, many would say that a JIT is faster than a regular bytecode interpreter; but SquirrelFish is faster than some known JIT-based JS implementations.)</description>
		<content:encoded><![CDATA[<p>While bytecode is a better architecture, note that the old AST interpreter was highly optimized and achieved speed comparable to the fairly well optimized SpiderMonkey bytecode interpreter for JavaScript (and beat the pants off of Opera&#8217;s and IE&#8217;s bytecode interpreters). It&#8217;s not just the architecture that matters, it is the implementation quality. So if you want to throw around terms like &#8220;shockingly slow&#8221;, I would say you should base it on measurements, not theory based on the architecture. You would be surprised how much it is possible to speed up a tree-based interpreter.</p>
<p>(As another example, many would say that a JIT is faster than a regular bytecode interpreter; but SquirrelFish is faster than some known JIT-based JS implementations.)</p>
]]></content:encoded>
	</item>
</channel>
</rss>
