Monday, June 2, 2008

SquirrelFish has landed!


Hey, everybody. I’m a Google Summer of Code student this year, working on performance improvements for JavaScriptCore, WebKit’s JavaScript interpreter. The official WebKit blog just announced SquirrelFish, our incremental rewrite of JavaScriptCore. In just about two months, we went from an AST-based interpreter to an optimized bytecode interpreter, achieving a substantial performance improvement in the process. Ever since it landed, people have been asking for comparisons between bleeding edge versions of the leading browsers, so here are some SunSpider numbers:

WebKit r34318:2248.0 ms
Firefox 3.0 RC1:3288.0 ms
Opera Snapshot 4844:6012.2 ms

This means that WebKit is 1.46 times faster than Firefox, and 2.67 times faster than Opera. The machine I used for testing is a 2.16 GHz Core 2 Duo MacBook Pro running Mac OS X 10.5.3.

The development process was a real blast. I got a chance to work with some great programmers while improving software that is widely used. There isn’t much more that one can ask for in the world of open source, or software development in general. We really worked well as a team, helping one other with writing patches, code review, running performance tests, and just giving general encouragement. I was finishing my master's thesis at the same time, so there wasn’t a dull moment in my life.

Much of this work was done before the accepted students for Summer of Code were announced, and the SquirrelFish branch merged a few days before the program officially started, so I think I’ve been doing a pretty good job on my project so far. Since the merge, we have been brainstorming further performance improvements, and we are getting to work on implementing them. I'll try to post about some of the things we do on this blog from time to time.