This post was migrated from my previous blog managed by an old CMS. Some parts may be broken or poorly formatted, images may be missing, etc. Feel free to report an issue.

Every once in a while I benchmark web browsers. I did this about a year ago to test Apple's claim about Safari 8 being extremely fast (spoiler: it wasn't really any better than the others). This time around, I decided to test Chrome 46, which launched a few weeks ago, against the competition. Why Chrome 46? Well, it's the first version to incorporate a number of changes meant to address battery and memory usage issues on a Mac.

I had switched away from Chrome as my main browser after finding that my battery did indeed last much longer if I used Safari. With Chrome addressing those issues more seriously, I wanted to see if it was notably faster than Safari 9 and reconsider switching back.

The Tests

So, what tests did I run? Basically the same set as last time, with one change. Google's Octane and Mozilla's Kraken are pretty standard to run so they were, of course, included. SunSpider has been replaced by a more modern benchmark called JetStream, so I used it in place of SunSpider this time around. Lastly, I ran Peacekeeper, which I don't believe is supported any longer, but it tests a few things the others don't so I thought it was still good to include.

It's worth noting that my tests are also being run on a 2012 MacBook Air, with 8GB of RAM and a Core i5 processor. The only thing that's changed since my test last year is the OS (El Capitan instead of Yosemite).

The Results

I ran each test in each browser 3 times and averaged the results, restarting the browser between each individual test. In all tests, a higher score is better except for the Kraken benchmark where lower is better. The charts are pretty straightforward here.

Bar chart showing the results of the JetStream JavaScript benchmark. Bar chart showing the results of the Kraken JavaScript benchmark. Bar chart showing the results of the Octane JavaScript benchmark. Bar chart showing the results of the PeaceKeeper JavaScript benchmark.

My conclusion is basically the same as before: each browser is about as fast the others. Other factors that may matter more at this point are memory usage and battery drain (issues I am not quite inclined to test as it's a bit more difficult). I have little reason to switch back to Chrome as my main browser at this point so I'll be sticking with Safari as it's proven the better for my battery. Chrome is merely a development tool for me these days.

A Year of JavaScript

Something I did find interesting was that I could compare my results from the last round of testing which was almost exactly a year ago to see how browsers have improved in the past year. The charts below show the results of this round of benchmarking compared to the previous run I did a year ago. Specifically, I am comparing Safari 8 and 9, Firefox 33 and 41, and Chrome 38 and 46.

Bar chart showing the results of the JetStream JavaScript benchmark. Bar chart showing the results of the JetStream JavaScript benchmark. Bar chart showing the results of the JetStream JavaScript benchmark.

JavaScript performance is, well, more or less stagnant. The only real notable differences (in these benchmarks, anyway), is that Chrome has made significant improvements in Kraken, and Firefox has made huge gains in Peacekeeper. How well either of those translates to real world usage I'm not entirely sure. But the major leaps in performance we were experiencing a few years ago are basically behind us. Sure, it's always getting a little faster, but no big leaps have happened this year. The more exciting part of JavaScript development now is all the new features coming to the language (awesomely summarized by Nicolas Bevacqua here).

As long as you've got the newest version of what ever browser you want to use, performance is going to be pretty much equal.