Safari's latest attempt of being king of the hill
Last year when Steve Jobs announced Safari 3 for Mac and Windows it came out of nothing. The reason is still unknown, but perhaps it's related to the iPhone and iPod touch, to get more market share overall. However back then Steve said it was the fastest browser. In the mean time they've added JavaScript profiling and today SquirrelFish.
Let's just say that of course these are only benchmarks coming from Surfin’ Safari, and could be seen as a one sided story. But it really looks like Safari is taking the crown, again and again, of being the king of the hill, the king of (JavaScript) performance.
Today the good folks at Surfin’ Safari (Apple), have announced SquirrelFish. This strangely codenamed component for WebKit, the engine behind it all, is a JavaScript interpreter. A what? An interpreter. A language like JavaScript is not compiled and is interpreted client side, say in your browser on your computer. As this takes up some memory and lots of CPU cycles it's quite important to get these things fast.
And that's just what SquirrelFish does. Just look at the SunSpider scores: WebKit r34318: 2248.0 ms, Firefox 3.0 RC1: 3288.0 ms, Opera Snapshot 4844: 6012.2 ms. Especially Opera has some work to do to get the numbers right in this benchmark, Firefox seems close but Safari is only 2/3 of Firefox 3's performance.
According to the blog post this is only just the beginning and we can expect more changes and probably improvements in the performance area. Can't wait to see how the story ends with Safari 4 (or something). Competition is a good thing ;)
Well, monkey VS. fish. Interesting.
Mac Opera is not yet optimiser-compiled, FF3 and I assume Safari are. Try Sunspider in Windows Vista 32bit here) and you'll get somewhat a different story:
Safari 3.1.1: 4053+-2.9
Firefox 3RC1 (minefield actually): 3756+-3.3
Opera latest build: 4290+-4.5
They are all within spitting distance of each other, with FF3 a clear nose in the lead.
*BUT* there are some good technical reasons why Mozilla's JS benchmark is better than Sunspider (see the Dromaeo documentation for why), and that gives:
http://dromaeo.com/?id=11985,11986,11987
Safari 3.1.1: 1498+-1.72
Firefox 3RC1: 1403.2.64
Opera latest build: 1295.6+-1.23
Opera has an 8% lead over Firefox with Safari trailing 3rd.
So, take your pick, but this batch of engines are certainly neck-and-neck in JS speed terms (Opera still leads clearly with DOM/display performance though). Still, once squirrelfish is out in a build I think Safari will regain the crown, but don't forget Mozilla have Tamarin in the sidelines, and Opera probably have something similar for the next set of engine revisions. This arms race is good for us all!
Just tried the squirrelmonkey build in windows, and the latest minefield nightly for good measure:
http://dromaeo.com/?id=11992,11993,11995
Webkit Minefield Kestrel
1132.80ms ±3.40% 1407.40ms ±1.99% 1251.20ms ±1.93%
Webkit+squirrelmonkey now has a 10% lead over Opera, but nothing super spectacular... That difference will be much greater under OS X however...
Thanks for your benchmarks under Windows. As you said it really shows that on Windows the differences between Opera and Safari is really small and not as stellar as under Mac OS X.
Hopefully Opera will work on specific Mac OS X performance improvements shortly.
It's compiled using VC++ on Windows, and that doesn't do "computed goto". Mac and Linux versions use GCC (which -- thanks to an extension -- does). Of course I don't fully understand what computed goto is or indeed how it makes things faster ;)
Gecko, Webkit and Kestrel have all made massive strides forward in terms of JS performance recently (so has Trident, albeit to a lesser extent) and they're constantly pushing each other to go even faster. It's fascinating to watch, even if I don't understand all of the technical details :)
Olly, I couldn't agree more with your second paragraph! :D
Post new comment