<?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/"
		>
<channel>
	<title>Comments on: JavaScript JIT: The Dream Gets Closer (in Firefox)</title>
	<atom:link href="http://ajaxian.com/archives/javascript-jit-the-dream-gets-closer-in-firefox/feed" rel="self" type="application/rss+xml" />
	<link>http://ajaxian.com/archives/javascript-jit-the-dream-gets-closer-in-firefox</link>
	<description>Cleaning up the web with Ajax</description>
	<lastBuildDate>Thu, 09 Feb 2012 06:55:33 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2</generator>
	<item>
		<title>By: Remedies</title>
		<link>http://ajaxian.com/archives/javascript-jit-the-dream-gets-closer-in-firefox/comment-page-1#comment-269626</link>
		<dc:creator>Remedies</dc:creator>
		<pubDate>Mon, 08 Dec 2008 18:12:04 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=4187#comment-269626</guid>
		<description>That was a very intresing read, the commets as much as the blog.
I will look into looking into the app.</description>
		<content:encoded><![CDATA[<p>That was a very intresing read, the commets as much as the blog.<br />
I will look into looking into the app.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dmdevito</title>
		<link>http://ajaxian.com/archives/javascript-jit-the-dream-gets-closer-in-firefox/comment-page-1#comment-266929</link>
		<dc:creator>dmdevito</dc:creator>
		<pubDate>Tue, 26 Aug 2008 15:13:04 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=4187#comment-266929</guid>
		<description>The availability of JIT compilers raises 3 questions.

(1) Why not packaging and releasing separate JDK and JRE (here, J is for JavaScript), that is, outside Mozilla releases ?

While more speed gives JS a greater interest as a language, it deserves separate JDK and JRE. Then, it might be a candidate for other script language (Perl ? may be more Tcl/TK ?) replacement, for scripting outside browsers.

(2) The first point raises the question of the JavaScript standard library.
 
I have suggested, when commenting a previous post (&lt;a href=&quot;http://ajaxian.com/archives/comparing-the-evolution-of-java-and-javascript&quot; rel=&quot;nofollow&quot;&gt;Comparing the evolution of Java and JavaScript&lt;/a&gt;), that JS needs a more standard library like Java (a CPAN web site ?). If one wants to push JS higher, and, as one example, outside browsers for more scripting, then JS needs a API giving more access to system resources, like file resources.
 
(3) A JIT compiler is better efficient while having more type information. JS may need optional (!) type information for execution speed improvement. 

Currently, one could define a counter like &quot;var i = 1;&quot; while a &quot;int i = 1;&quot; definition could be more interesting for a compiler :
(a) the first form just says &quot;i&quot; is a variable, currently initialized as an integer, but with no constant type attached.
(b) the latter option just says that &quot;i&quot; is always an integer and if no conversion could be done when assigning later this variable, then an error should be raised. 
As a scripting language, the constraint is that both forms should be accepted by JS. Questions remain about introducing more (optional!) typed styles for defining variables into JS as a language.</description>
		<content:encoded><![CDATA[<p>The availability of JIT compilers raises 3 questions.</p>
<p>(1) Why not packaging and releasing separate JDK and JRE (here, J is for JavaScript), that is, outside Mozilla releases ?</p>
<p>While more speed gives JS a greater interest as a language, it deserves separate JDK and JRE. Then, it might be a candidate for other script language (Perl ? may be more Tcl/TK ?) replacement, for scripting outside browsers.</p>
<p>(2) The first point raises the question of the JavaScript standard library.</p>
<p>I have suggested, when commenting a previous post (<a href="http://ajaxian.com/archives/comparing-the-evolution-of-java-and-javascript" rel="nofollow">Comparing the evolution of Java and JavaScript</a>), that JS needs a more standard library like Java (a CPAN web site ?). If one wants to push JS higher, and, as one example, outside browsers for more scripting, then JS needs a API giving more access to system resources, like file resources.</p>
<p>(3) A JIT compiler is better efficient while having more type information. JS may need optional (!) type information for execution speed improvement. </p>
<p>Currently, one could define a counter like &#8220;var i = 1;&#8221; while a &#8220;int i = 1;&#8221; definition could be more interesting for a compiler :<br />
(a) the first form just says &#8220;i&#8221; is a variable, currently initialized as an integer, but with no constant type attached.<br />
(b) the latter option just says that &#8220;i&#8221; is always an integer and if no conversion could be done when assigning later this variable, then an error should be raised.<br />
As a scripting language, the constraint is that both forms should be accepted by JS. Questions remain about introducing more (optional!) typed styles for defining variables into JS as a language.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cromwellian</title>
		<link>http://ajaxian.com/archives/javascript-jit-the-dream-gets-closer-in-firefox/comment-page-1#comment-266916</link>
		<dc:creator>cromwellian</dc:creator>
		<pubDate>Tue, 26 Aug 2008 03:47:00 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=4187#comment-266916</guid>
		<description>Pixel manipulation operations would be better done via a higher level Canvas API that provided colorspace transforms, convolutions, lookup ops, etc, not just because it will be far faster than raw JS manipulation, but that the underlying implementation can use optimized memory representations (e.g. image tiling) such that reasonably large images can be worked on without neccessarily wasting tons of heap keeping N copies of the entire image in the JS heap.

I was always hoping Gears would took the mantle on this, as well as extending Canvas support to IE6. :)</description>
		<content:encoded><![CDATA[<p>Pixel manipulation operations would be better done via a higher level Canvas API that provided colorspace transforms, convolutions, lookup ops, etc, not just because it will be far faster than raw JS manipulation, but that the underlying implementation can use optimized memory representations (e.g. image tiling) such that reasonably large images can be worked on without neccessarily wasting tons of heap keeping N copies of the entire image in the JS heap.</p>
<p>I was always hoping Gears would took the mantle on this, as well as extending Canvas support to IE6. :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: p01</title>
		<link>http://ajaxian.com/archives/javascript-jit-the-dream-gets-closer-in-firefox/comment-page-1#comment-266905</link>
		<dc:creator>p01</dc:creator>
		<pubDate>Mon, 25 Aug 2008 18:29:08 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=4187#comment-266905</guid>
		<description>Great!

As for Canvas, it very much depends on what you&#039;re doing.

For JS heavy things that require little to no rendering such as per pixel manipulations ( convolutions, morphoMath operations, and other color manipulations ) JIT can provide a significant improvement. However for rendering heavy things ( think polygon rendering, whole Canvas based post-processing, ... ) JIT won&#039;t do much as in such cases the bottle neck is clearly -- even today -- the graphic engine of the browser.</description>
		<content:encoded><![CDATA[<p>Great!</p>
<p>As for Canvas, it very much depends on what you&#8217;re doing.</p>
<p>For JS heavy things that require little to no rendering such as per pixel manipulations ( convolutions, morphoMath operations, and other color manipulations ) JIT can provide a significant improvement. However for rendering heavy things ( think polygon rendering, whole Canvas based post-processing, &#8230; ) JIT won&#8217;t do much as in such cases the bottle neck is clearly &#8212; even today &#8212; the graphic engine of the browser.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: GregHouston</title>
		<link>http://ajaxian.com/archives/javascript-jit-the-dream-gets-closer-in-firefox/comment-page-1#comment-266872</link>
		<dc:creator>GregHouston</dc:creator>
		<pubDate>Sun, 24 Aug 2008 07:16:06 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=4187#comment-266872</guid>
		<description>&quot;Right now there isn&#039;t any tracing being done into DOM methods (only across pure-JavaScript objects) - but that is something that will be rectified. Being able to trace through a DOM method would successfully speed up, not only, math and object-intensive applications (as it does now) but also regular DOM manipulation and property access.&quot;
-- John Resig
.
My apps don&#039;t use a lot of intensive calculations so I&#039;m particularly looking forward to the DOM method tracing. Along with the new implementations of the Selectors API this is pretty exciting.
.
What is unclear to me is how the benchmarks of the different aspects of generating content compare to each other. For instance, if my app takes .1 seconds to calculate, .5 seconds to manipulate the DOM, and 10 seconds to render to HTML, making the calculation part a 1000 times faster would still not really change the speed of my application. It would still be about 10 and a half seconds. Making the DOM part a 1000 times faster would not increase my speed much either. It would be down to about 10 seconds.
.
It would be nice to see a breakdown for a canvas animation for instance and perhaps a couple other use cases where one might emphasize calculation, another DOM manipulation, and another rendering. For each use case, how much time is spent calculating, how much time interacting with the DOM, and how much time is actually spent rendering the result to HTML? I don&#039;t really have any sense of how these different benchmarks compare with each other.</description>
		<content:encoded><![CDATA[<p>&#8220;Right now there isn&#8217;t any tracing being done into DOM methods (only across pure-JavaScript objects) &#8211; but that is something that will be rectified. Being able to trace through a DOM method would successfully speed up, not only, math and object-intensive applications (as it does now) but also regular DOM manipulation and property access.&#8221;<br />
&#8211; John Resig<br />
.<br />
My apps don&#8217;t use a lot of intensive calculations so I&#8217;m particularly looking forward to the DOM method tracing. Along with the new implementations of the Selectors API this is pretty exciting.<br />
.<br />
What is unclear to me is how the benchmarks of the different aspects of generating content compare to each other. For instance, if my app takes .1 seconds to calculate, .5 seconds to manipulate the DOM, and 10 seconds to render to HTML, making the calculation part a 1000 times faster would still not really change the speed of my application. It would still be about 10 and a half seconds. Making the DOM part a 1000 times faster would not increase my speed much either. It would be down to about 10 seconds.<br />
.<br />
It would be nice to see a breakdown for a canvas animation for instance and perhaps a couple other use cases where one might emphasize calculation, another DOM manipulation, and another rendering. For each use case, how much time is spent calculating, how much time interacting with the DOM, and how much time is actually spent rendering the result to HTML? I don&#8217;t really have any sense of how these different benchmarks compare with each other.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nosredna</title>
		<link>http://ajaxian.com/archives/javascript-jit-the-dream-gets-closer-in-firefox/comment-page-1#comment-266870</link>
		<dc:creator>Nosredna</dc:creator>
		<pubDate>Sun, 24 Aug 2008 01:22:21 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=4187#comment-266870</guid>
		<description>&gt;&gt;Hmm, not strictly true - it lets you write code in C# which is then used to generate Javascript, to be deployed as usual.

Which is pretty much the way all these work. They compile to JavaScript.</description>
		<content:encoded><![CDATA[<p>&gt;&gt;Hmm, not strictly true &#8211; it lets you write code in C# which is then used to generate Javascript, to be deployed as usual.</p>
<p>Which is pretty much the way all these work. They compile to JavaScript.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jeromew</title>
		<link>http://ajaxian.com/archives/javascript-jit-the-dream-gets-closer-in-firefox/comment-page-1#comment-266868</link>
		<dc:creator>jeromew</dc:creator>
		<pubDate>Sat, 23 Aug 2008 23:17:01 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=4187#comment-266868</guid>
		<description>&quot;Also Script#, which gives you C++ in the browsers.&quot;

Hmm, not strictly true - it lets you write code in C# which is then used to generate Javascript, to be deployed as usual.</description>
		<content:encoded><![CDATA[<p>&#8220;Also Script#, which gives you C++ in the browsers.&#8221;</p>
<p>Hmm, not strictly true &#8211; it lets you write code in C# which is then used to generate Javascript, to be deployed as usual.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: FrankThuerigen</title>
		<link>http://ajaxian.com/archives/javascript-jit-the-dream-gets-closer-in-firefox/comment-page-1#comment-266866</link>
		<dc:creator>FrankThuerigen</dc:creator>
		<pubDate>Sat, 23 Aug 2008 20:23:03 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=4187#comment-266866</guid>
		<description>For those interested I tested this on a real world application which deals with table processing and has an excel-like appearance. Obviously tons of loops, so far executions speed was &quot;acceptable for the patient ones&quot; ;-)

It now runs real time :-)

Big thanks to the traceMonkey team for making this happen!</description>
		<content:encoded><![CDATA[<p>For those interested I tested this on a real world application which deals with table processing and has an excel-like appearance. Obviously tons of loops, so far executions speed was &#8220;acceptable for the patient ones&#8221; ;-)</p>
<p>It now runs real time :-)</p>
<p>Big thanks to the traceMonkey team for making this happen!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joeri</title>
		<link>http://ajaxian.com/archives/javascript-jit-the-dream-gets-closer-in-firefox/comment-page-1#comment-266864</link>
		<dc:creator>Joeri</dc:creator>
		<pubDate>Sat, 23 Aug 2008 15:41:17 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=4187#comment-266864</guid>
		<description>&quot;the JITs can’t optimize away code before it is downloaded&quot;

But with google gears localserver we can make the download cost less painful. I see the download problem as easily solved.

It&#039;s becoming more and more obvious that the way to build web apps is going to be using a javascript framework to build all-javascript apps that connect to web services. It marries the benefits of server-hosted application code with the benefits of client-side code execution.</description>
		<content:encoded><![CDATA[<p>&#8220;the JITs can’t optimize away code before it is downloaded&#8221;</p>
<p>But with google gears localserver we can make the download cost less painful. I see the download problem as easily solved.</p>
<p>It&#8217;s becoming more and more obvious that the way to build web apps is going to be using a javascript framework to build all-javascript apps that connect to web services. It marries the benefits of server-hosted application code with the benefits of client-side code execution.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nosredna</title>
		<link>http://ajaxian.com/archives/javascript-jit-the-dream-gets-closer-in-firefox/comment-page-1#comment-266862</link>
		<dc:creator>Nosredna</dc:creator>
		<pubDate>Sat, 23 Aug 2008 15:36:05 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=4187#comment-266862</guid>
		<description>&gt;&gt;unless you use GWT that is
.
Not just GWT.
.
Also Script#, which gives you C++ in the browsers. It&#039;s very nice for .Netheads.
.
And Mascara, which is immature but gives you what was envisioned for ECMAScript 4.
.
Haxe, too, which gives you an Ecma-like language.
.
And the various Rubys and Lazslo. Plus all the new compilers people will write when JS is faster.
.
But, you know, I just wrote a giant JavaScript app, and once I got the hang of the language it was quite easy to manage. I just had to get used to variables and functions being part of an object.
.
Huge, huge programs were written in procedural C. JavaScript seems sane and simple compared to that. When you&#039;re passing and returning objects as parameters, it&#039;s pretty easy to keep things soild.</description>
		<content:encoded><![CDATA[<p>&gt;&gt;unless you use GWT that is<br />
.<br />
Not just GWT.<br />
.<br />
Also Script#, which gives you C++ in the browsers. It&#8217;s very nice for .Netheads.<br />
.<br />
And Mascara, which is immature but gives you what was envisioned for ECMAScript 4.<br />
.<br />
Haxe, too, which gives you an Ecma-like language.<br />
.<br />
And the various Rubys and Lazslo. Plus all the new compilers people will write when JS is faster.<br />
.<br />
But, you know, I just wrote a giant JavaScript app, and once I got the hang of the language it was quite easy to manage. I just had to get used to variables and functions being part of an object.<br />
.<br />
Huge, huge programs were written in procedural C. JavaScript seems sane and simple compared to that. When you&#8217;re passing and returning objects as parameters, it&#8217;s pretty easy to keep things soild.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ThomasHansen</title>
		<link>http://ajaxian.com/archives/javascript-jit-the-dream-gets-closer-in-firefox/comment-page-1#comment-266861</link>
		<dc:creator>ThomasHansen</dc:creator>
		<pubDate>Sat, 23 Aug 2008 14:50:15 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=4187#comment-266861</guid>
		<description>This is great news, JIT for JS will definitely by orders of magnitudes make JS a very fast language :)
Though I am interested in how this affects the &quot;dynamic parts&quot; like closures, eval and so on...?
Obviously you cannot JIT the stuff in an eval statement unless you&#039;re positively sure of that the content in the eval won&#039;t change or haven&#039;t been dynamically created etc...</description>
		<content:encoded><![CDATA[<p>This is great news, JIT for JS will definitely by orders of magnitudes make JS a very fast language :)<br />
Though I am interested in how this affects the &#8220;dynamic parts&#8221; like closures, eval and so on&#8230;?<br />
Obviously you cannot JIT the stuff in an eval statement unless you&#8217;re positively sure of that the content in the eval won&#8217;t change or haven&#8217;t been dynamically created etc&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ibolmo</title>
		<link>http://ajaxian.com/archives/javascript-jit-the-dream-gets-closer-in-firefox/comment-page-1#comment-266859</link>
		<dc:creator>ibolmo</dc:creator>
		<pubDate>Sat, 23 Aug 2008 06:19:32 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=4187#comment-266859</guid>
		<description>How does this compare with SquirrelFish?</description>
		<content:encoded><![CDATA[<p>How does this compare with SquirrelFish?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cromwellian</title>
		<link>http://ajaxian.com/archives/javascript-jit-the-dream-gets-closer-in-firefox/comment-page-1#comment-266857</link>
		<dc:creator>cromwellian</dc:creator>
		<pubDate>Sat, 23 Aug 2008 05:49:35 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=4187#comment-266857</guid>
		<description>Also, for those curious, approximately 50% of the performance slowdown is related to scaling on the iPhone. If you set the viewport to a scale of 1.0, you gain back 50%  (in my case, going from 90-100ms to render 50 rectangles unscaled, to 150ms-200ms to render with a non-1.0 viewport scale) It doesn&#039;t explain why I can see times upwards of 300ms sometimes.</description>
		<content:encoded><![CDATA[<p>Also, for those curious, approximately 50% of the performance slowdown is related to scaling on the iPhone. If you set the viewport to a scale of 1.0, you gain back 50%  (in my case, going from 90-100ms to render 50 rectangles unscaled, to 150ms-200ms to render with a non-1.0 viewport scale) It doesn&#8217;t explain why I can see times upwards of 300ms sometimes.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cromwellian</title>
		<link>http://ajaxian.com/archives/javascript-jit-the-dream-gets-closer-in-firefox/comment-page-1#comment-266856</link>
		<dc:creator>cromwellian</dc:creator>
		<pubDate>Sat, 23 Aug 2008 04:40:21 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=4187#comment-266856</guid>
		<description>BTW, the snippet above lets some rectangles get clipped, but if you change it to render all of the rectangles at (0,0) you get similar results, showing that clipping is not predominant explanation for the performance difference.</description>
		<content:encoded><![CDATA[<p>BTW, the snippet above lets some rectangles get clipped, but if you change it to render all of the rectangles at (0,0) you get similar results, showing that clipping is not predominant explanation for the performance difference.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cromwellian</title>
		<link>http://ajaxian.com/archives/javascript-jit-the-dream-gets-closer-in-firefox/comment-page-1#comment-266855</link>
		<dc:creator>cromwellian</dc:creator>
		<pubDate>Sat, 23 Aug 2008 04:37:38 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=4187#comment-266855</guid>
		<description>Actually, that last comment about the canvas is not quite true. First, there  still appears to be significant function call overhead with canvas, so invoking moveto/lineto/etc 10,000 times is not likely to get a huge performance boost until a) they can inline/dispatch to native C++ code faster and b) whatever road blocks are in the canvas renderer are reduced.

Let me give you an example from the iPhone.  The following code:
var a = 0;
for(i=0; i&lt;50; i++) {
   ctx.strokeStyle = &quot;red&quot;;
   ctx.save();
   ctx.translate(i*10, i*10);
   ctx.rotate(3.141529*2*((a + i)/10));
   draw(ctx);
   ctx.restore();
 }
}


function draw(ctx) {
   ctx.beginPath();
   ctx.moveTo(0, 0);
   ctx.lineTo(10, 0);
   ctx.lineTo(10, 10);
   ctx.lineTo(0, 10);
   ctx.closePath();
   ctx.stroke();
}

Which draws 50 rectangles, will run far far faster with a canvas width/height of 100x100 or 200x200 vs 400x400. The slow down does not occur during the actual canvas 2d calls. If you try to time the calls, they run very fast. The slow down comes after yielding the JS interpreter CPU (e.g. setTimeout). Whatever the browser is doing (copying offscreen buffer onto browser surface) when your drawing thread yields, it is enormously slow and scales by number of pixels.

That is, the Javascript code does the same amount of work (touches identical number of screen pixels), but using a larger canvas (most of it whitespace which is not rendered into) can slow down rendering by 4x, clearly, something is wrong with WebKit Canvas on the iPhone.


I would also like to add, that while the speed boost will encourage the size of Javascript applications to increase in scale, the Javascript language itself makes optimizing for downsize difficult, and the JITs can&#039;t optimize away code before it is downloaded.  So, the downside of the JIT performance improvements, in combination with the torpedoing of Javascript 2, effectively leaves nothing but laborious and non-standard hacks to glue together large JS applications (unless you use GWT that is)</description>
		<content:encoded><![CDATA[<p>Actually, that last comment about the canvas is not quite true. First, there  still appears to be significant function call overhead with canvas, so invoking moveto/lineto/etc 10,000 times is not likely to get a huge performance boost until a) they can inline/dispatch to native C++ code faster and b) whatever road blocks are in the canvas renderer are reduced.</p>
<p>Let me give you an example from the iPhone.  The following code:<br />
var a = 0;<br />
for(i=0; i&lt;50; i++) {<br />
   ctx.strokeStyle = &#8220;red&#8221;;<br />
   ctx.save();<br />
   ctx.translate(i*10, i*10);<br />
   ctx.rotate(3.141529*2*((a + i)/10));<br />
   draw(ctx);<br />
   ctx.restore();<br />
 }<br />
}</p>
<p>function draw(ctx) {<br />
   ctx.beginPath();<br />
   ctx.moveTo(0, 0);<br />
   ctx.lineTo(10, 0);<br />
   ctx.lineTo(10, 10);<br />
   ctx.lineTo(0, 10);<br />
   ctx.closePath();<br />
   ctx.stroke();<br />
}</p>
<p>Which draws 50 rectangles, will run far far faster with a canvas width/height of 100&#215;100 or 200&#215;200 vs 400&#215;400. The slow down does not occur during the actual canvas 2d calls. If you try to time the calls, they run very fast. The slow down comes after yielding the JS interpreter CPU (e.g. setTimeout). Whatever the browser is doing (copying offscreen buffer onto browser surface) when your drawing thread yields, it is enormously slow and scales by number of pixels.</p>
<p>That is, the Javascript code does the same amount of work (touches identical number of screen pixels), but using a larger canvas (most of it whitespace which is not rendered into) can slow down rendering by 4x, clearly, something is wrong with WebKit Canvas on the iPhone.</p>
<p>I would also like to add, that while the speed boost will encourage the size of Javascript applications to increase in scale, the Javascript language itself makes optimizing for downsize difficult, and the JITs can&#8217;t optimize away code before it is downloaded.  So, the downside of the JIT performance improvements, in combination with the torpedoing of Javascript 2, effectively leaves nothing but laborious and non-standard hacks to glue together large JS applications (unless you use GWT that is)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hans Schmucker</title>
		<link>http://ajaxian.com/archives/javascript-jit-the-dream-gets-closer-in-firefox/comment-page-1#comment-266854</link>
		<dc:creator>Hans Schmucker</dc:creator>
		<pubDate>Sat, 23 Aug 2008 02:39:04 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=4187#comment-266854</guid>
		<description>For all who want to try it without reading through all those posts: The code is already included in in current nightlies, just go to about:config ans search for jit. There are two options, one for chrome and one for content. Unless you are an extension developer, you probably shouldn&#039;t touch chrome jit acceleration until it&#039;s thoroughly tested.</description>
		<content:encoded><![CDATA[<p>For all who want to try it without reading through all those posts: The code is already included in in current nightlies, just go to about:config ans search for jit. There are two options, one for chrome and one for content. Unless you are an extension developer, you probably shouldn&#8217;t touch chrome jit acceleration until it&#8217;s thoroughly tested.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

