<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Christopher Blizzard &#187; TraceMonkey</title>
	<atom:link href="http://www.0xdeadbeef.com/weblog/category/tracemonkey/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.0xdeadbeef.com/weblog</link>
	<description>I love you.</description>
	<lastBuildDate>Thu, 26 May 2011 20:29:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>mobile sunspider performance</title>
		<link>http://www.0xdeadbeef.com/weblog/2009/12/mobile-sunspider-performance/</link>
		<comments>http://www.0xdeadbeef.com/weblog/2009/12/mobile-sunspider-performance/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 17:35:00 +0000</pubDate>
		<dc:creator>Christopher Blizzard</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[TraceMonkey]]></category>

		<guid isPermaLink="false">http://www.0xdeadbeef.com/weblog/?p=1637</guid>
		<description><![CDATA[A few weeks ago Vlad had the chance to do performance tests across a variety of different devices. He&#8217;s picked up a Droid as part of his Android work, also has access to an N900, and I also know he&#8217;s &#8230; <a href="http://www.0xdeadbeef.com/weblog/2009/12/mobile-sunspider-performance/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A few weeks ago <a href="http://blog.vlad1.com">Vlad</a> had the chance to do performance tests across a variety of different devices.  He&#8217;s picked up a <a href="http://en.wikipedia.org/wiki/Motorola_Droid">Droid</a> as part of his <a href="https://wiki.mozilla.org/Android">Android</a> work, also has access to an <a href="http://maemo.nokia.com/n900/">N900</a>, and I also know he&#8217;s proud to admit that&#8217;s he&#8217;s a Zune HD owner.</p>
<p>Firefox for Mobile has been getting <a href="http://crave.cnet.co.uk/cnetuk/crave/mobiles/0,39029453,49304307,00.htm">excellent reviews</a> for features and functions.  We also have good numbers for JS performance, an important component of building compelling web applications on mobile.</p>
<div align="center">
<a href="http://www.0xdeadbeef.com/weblog/wp-content/uploads/2009/12/mobile-performance2.png" rel="lightbox[1637]"><img src="http://www.0xdeadbeef.com/weblog/wp-content/uploads/2009/12/mobile-performance2.png" width="400"/></a><br/>Mobile Sunspider Performance &#8211; Click for a Larger Version.
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.0xdeadbeef.com/weblog/2009/12/mobile-sunspider-performance/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Firefox 3.1 Beta 1 is available</title>
		<link>http://www.0xdeadbeef.com/weblog/2008/10/firefox-31-beta-1-is-available/</link>
		<comments>http://www.0xdeadbeef.com/weblog/2008/10/firefox-31-beta-1-is-available/#comments</comments>
		<pubDate>Tue, 14 Oct 2008 22:04:07 +0000</pubDate>
		<dc:creator>Christopher Blizzard</dc:creator>
				<category><![CDATA[Beta]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[TraceMonkey]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://www.0xdeadbeef.com/weblog/?p=814</guid>
		<description><![CDATA[Firefox 3.1 Beta 1 is available for downloading and testing. I&#8217;ve been using it now for a few days with TraceMonkey enabled and it seems pretty stable for me (aside from the lack of extensions.) I also wrote up a &#8230; <a href="http://www.0xdeadbeef.com/weblog/2008/10/firefox-31-beta-1-is-available/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>
Firefox 3.1 Beta 1 is <a href="http://developer.mozilla.org/devnews/index.php/2008/10/14/firefox-31-beta-1-now-available-for-download/">available for downloading and testing</a>.  I&#8217;ve been using it now for a few days with TraceMonkey enabled and it seems pretty stable for me (aside from the lack of extensions.)
</p>
<p>
I also wrote up a <a href="http://developer.mozilla.org/web-tech/2008/10/14/firefox-31-beta-1-an-overview-of-features-for-web-developers/">big post that goes over some of the new web developer features in this beta</a> in the <a href="http://developer.mozilla.org/web-tech/">web-tech blog</a>.  There&#8217;s a pile of stuff in there that most people don&#8217;t even know about, so taking the time to look through the list even if you&#8217;re not going to download the beta is worth it.  We&#8217;ve got some neat stuff coming up for 3.1.
</p>
<p>
Beta 2 will feature some more user-visible features and a pile of new web developer features as well.  So much good stuff coming down the pipe.
</p>
<p>
Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.0xdeadbeef.com/weblog/2008/10/firefox-31-beta-1-is-available/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>performance, chrome, mozilla and tracemonkey</title>
		<link>http://www.0xdeadbeef.com/weblog/2008/09/performance-chrome-mozilla-and-tracemonkey/</link>
		<comments>http://www.0xdeadbeef.com/weblog/2008/09/performance-chrome-mozilla-and-tracemonkey/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 17:15:43 +0000</pubDate>
		<dc:creator>Christopher Blizzard</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Chrome]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Metrics]]></category>
		<category><![CDATA[TraceMonkey]]></category>
		<category><![CDATA[V8]]></category>

		<guid isPermaLink="false">http://www.0xdeadbeef.com/weblog/?p=704</guid>
		<description><![CDATA[So, V8. Well-hyped. It&#8217;s got a cool logo. And many claims are being made about its performance. But it is not the only kid on the block. As we blogged about a couple of weeks ago, Mozilla has been investing &#8230; <a href="http://www.0xdeadbeef.com/weblog/2008/09/performance-chrome-mozilla-and-tracemonkey/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So, V8.  Well-hyped.  It&#8217;s got a cool logo.  And many claims are being made about its performance.  But it is not the only kid on the block.  As we blogged about <a href="http://weblogs.mozillazine.org/roadmap/archives/2008/08/tracemonkey_javascript_lightsp.html">a couple of weeks ago</a>, Mozilla has been investing over the last couple of months in a super-fast JS engine as well.
</p>
<p>
In terms of claims some members of the V8 team have been <a href="http://news.cnet.com/8301-17939_109-10030717-2.html?part=rss&#038;tag=feed&#038;subj=Webware">bragging a little bit</a> about how V8 is &#8220;many times faster&#8221; than TraceMonkey.  In fact, some <a href="http://www.iht.com/articles/2007/12/10/sports/football10.php"><i>guarantees</i></a> may have been made.
</p>
<div align="center">
<a href="http://weblogs.mozillazine.org/roadmap/archives/2008/09/tracemonkey_update.html"><br />
<img width="315" src="http://weblogs.mozillazine.org/roadmap/tm-v8-sunspider-totals.png"/><br />
</a>
</div>
<p>
Based on the data above, we&#8217;re running about 20% faster than V8 on SunSpider.  While I&#8217;m sure there will be changes to each of the engines in the coming months I think that the claim that &#8220;many times faster&#8221; is ludicrous on its face and should be tempered by actual data. [ Note that the Google test is recursion heavy, something we're adding to TraceMonkey right now.  This explains the gap on that one type of test.  See Brendan's post above or John's post below for more details. ]
</p>
<p>
It&#8217;s also important to realize another fact.  Google has had a small army of people working on the V8 engine for <i>two whole earth years.</i>  We&#8217;re about 60 days into TraceMonkey and we&#8217;re already starting to match the performance characteristics of V8.  As <a href="http://weblogs.mozillazine.org/roadmap/archives/2008/09/tracemonkey_update.html">Brendan put it</a>:</p>
<blockquote><p>
What spectators have to realize is that this contest is not a playoff where each contending VM is eliminated at any given hype-event point. We believe that <a href="http://andreasgal.com/publications/">Franz&#038;Gal-style tracing</a> has more &#8220;headroom&#8221; than less aggressively speculative approaches, due to its ability to specialize code, making variables constant and eliminating dead code and conditions at runtime, based on the latent types inherent in almost all JavaScript programs. If we are right, we&#8217;ll find out over the next weeks and months, and so will you all.
</p></blockquote>
<p>
If you want data across browsers you should look at this post from <a href="http://ejohn.org/blog/javascript-performance-rundown/">John Resig</a> that contains some graphics that give relative performance of various browsers including Safari, Firefox 3.0.1, IE, etc.  His overview is great and gives a much wider view of relative browser performance.
</p>
<p>
Also as a side note because I have your attention.  There are some bizarre and incorrect claims made in the comic about garbage collection.  <a href="http://ejohn.org/blog/javascript-performance-rundown/#comment-320194">Brendan puts things right as a comment in John&#8217;s post</a>:</p>
<blockquote><p>
@Ben: Chrome has a nice GC: exact rooting, generational with copying. Single-threaded, too (not an option for SpiderMonkey, which is used in AT&#038;T 1-800-555-1212 and 411 AVR massively multi-threaded services built by tellme.com, now owned by Microsoft!). It definitely helps cut down on pauses and keep memory use flatter.</p>
<p>The Chrome comic book did have one piece of misinformation, though: it said other browsers&#8217; engines use conservative GC, and have false positive problems because they can&#8217;t distinguish random integers from pointers into the heap. This is not true of Firefox, IE, or Opera.
</p></blockquote>
<p>
We do live in interesting times.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.0xdeadbeef.com/weblog/2008/09/performance-chrome-mozilla-and-tracemonkey/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>tracemonkey and you</title>
		<link>http://www.0xdeadbeef.com/weblog/2008/08/tracemonkey-and-you/</link>
		<comments>http://www.0xdeadbeef.com/weblog/2008/08/tracemonkey-and-you/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 15:21:49 +0000</pubDate>
		<dc:creator>Christopher Blizzard</dc:creator>
				<category><![CDATA[Embedding]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[TraceMonkey]]></category>

		<guid isPermaLink="false">http://www.0xdeadbeef.com/weblog/?p=624</guid>
		<description><![CDATA[There have been a pile of posts about the TraceMonkey code that just landed in mozilla-central. mozilla-central is the source code repository we&#8217;re using in the lead up to Firefox 3.1. Here are some posts if you want to read &#8230; <a href="http://www.0xdeadbeef.com/weblog/2008/08/tracemonkey-and-you/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>
There have been a pile of posts about the TraceMonkey code that just landed in mozilla-central.  mozilla-central is the source code repository we&#8217;re using in the lead up to Firefox 3.1.  Here are some posts if you want to read about it:
</p>
<ul>
<li>Brendan Eich: <a href="http://weblogs.mozillazine.org/roadmap/archives/2008/08/tracemonkey_javascript_lightsp.html">TraceMonkey: JavaScript Lightspeed</a>
<li>John Resig: <a href="http://ejohn.org/blog/tracemonkey/">TraceMonkey</a>
<li>Mike Schroepfer: <a href="http://blog.mozilla.com/schrep/2008/08/22/what-can-you-do-when-your-browser-is-7-times-faster/">What can you do when your browser is 7 times faster?</a>
<li>Mike Shaver: <a href="http://shaver.off.net/diary/2008/08/22/the-birth-of-a-faster-monkey/">The birth of a faster monkey</a>
<li>Ryan Paul: <a href="http://arstechnica.com/news.ars/post/20080822-firefox-to-get-massive-javascript-performance-boost.html">Firefox to get massive JavaScript performance boost</a>
</ul>
<p>
The heart of the story is that we&#8217;re seeing performance increases on benchmarks of anywhere from 1.8x to 37.5x depending on the benchmark used.
</p>
<p>
But the thing that most people don&#8217;t realize is that you can take advantage of the work that we&#8217;re doing in SpiderMonkey in your program as an embedded JS interpreter.  It&#8217;s a pretty tiny engine, has a relatively stable API and even has useful documentation.  <a href="http://ejohn.org/blog/tracemonkey/">John&#8217;s post</a> contains four commands that you can use to build the engine.  In fact, it&#8217;s so short, I&#8217;ll re-paste it here:
</p>
<p><code></p>
<pre>
hg clone http://hg.mozilla.org/tracemonkey/
cd tracemonkey/js/src
make -f Makefile.ref BUILD_OPT=1
Linux_All_OPT.OBJ/js -j
</pre>
<p></code></p>
<p>
And you&#8217;re in a command line JS interpreter.  No fuss, no muss.
</p>
<p>
Many people don&#8217;t realize it but most of what people think of as JavaScript is the browser API, not the JavaScript language.  To quote from the <a href="http://developer.mozilla.org/en/JavaScript_C_Engine_Embedder%27s_Guide">JavaScript C Engine Embedder&#8217;s Guide</a>:</p>
<blockquote><p>
The word JavaScript may bring to mind features such as event handlers (like onclick), DOM objects, window.open, and XMLHttpRequest. But in Mozilla, all of these features are actually provided by other components, not the SpiderMonkey engine itself. SpiderMonkey provides a few core JavaScript data types—numbers, strings, Arrays, Objects, and so on—and a few methods, such as Array.push. It also makes it easy for each application to expose some of its own objects and functions to JavaScript code. Browsers expose DOM objects. Your application will expose objects that are relevant for the kind of scripts you want to write. It is up to the application developer to decide what objects and methods are exposed to scripts.
</p></blockquote>
<p>
The <a href="http://developer.mozilla.org/en/JavaScript_C_Engine_Embedder%27s_Guide">Embedder&#8217;s Guide</a> does contain a lot of good information you can use to get started embedding SpiderMonkey into your application.  It&#8217;s worth a read if you&#8217;re looking for a decent scripting engine for your app.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.0xdeadbeef.com/weblog/2008/08/tracemonkey-and-you/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

