Thursday, September 18, 2008

SquirrelFish Extreme has landed!

It's been a long time since my last post on this blog. I really was meaning to update everyone on my progress throughout the Summer of Code, but that plan sort of fell apart when I got busy with school and my Summer of Code project.

One of the biggest things to happen in the WebKit world recently is the introduction of SquirrelFish Extreme, which just hit the WebKit blog a short while ago. That post contains a good overview of the ideas involved in SquirrelFish Extreme, so I won't go into any further detail here, besides saying that I have had a fun time working on the project with the other members of the WebKit team.

The WebKit blog is missing benchmarks comparing SquirrelFish Extreme to other JavaScript engines, which is understandable. However, people always love to see these sorts of numbers, so I'll post them here.

The three most competitive JavaScript engines are the SquirrelFish Extreme engine in WebKit, the V8 engine in Google's Chrome browser, and the TraceMonkey engine that is slated to appear in Firefox 3.1. I used the latest development version of each, from the respective SVN or Mercurial repository. In particular, the version of V8 used here is the bleeding-edge branch, which is a bit faster than the version that shipped with Chrome. Here are some SunSpider numbers on my 2.16 GHz MacBook Pro, using 50 runs with a 95% confidence interval of +/- 0.1%:

SquirrelFish Extreme:943.3 ms
V8:1280.6 ms
TraceMonkey:1464.6 ms

As you can see, SquirrelFish Extreme is 36% faster than V8, and 55% faster than TraceMonkey. The last time I posted benchmark numbers, people wanted to see Opera's numbers as well. The beta of Opera 9.6 runs SunSpider in 6394.2 ms. I can't run Opera's JavaScript engine from the commandline, so it is taking a minor penalty for the benchmark being run in a browser, but the difference between Opera and other JavaScript engines is so drastic that the point is clear either way.

We are definitely in an interesting time for browser development. Everybody is working hard to improve performance, standards compliance and stability. The end result will definitely be a more open web, with richer content and more advanced applications than in the past.