Steve Ridout Indie web developer and creator of Readlang

iOS Chrome, browse the web in slow motion!

December 14, 2013

Chrome for iOS has been my main browser since I bought my iPad over a year ago. I love the way it syncs my bookmarks and history with my desktop Chrome browser and its familiar UI. But one thing that occasionally annoys me is its speed. From the start Chrome was marketed as the fast browser but so often on iOS it feels like I’m browsing in bullet time.

I blamed it partly on having the first iPad with a retina display (3rd gen) which is a little underpowered to push around all those pixels. But mainly, I just figured that all mobiles and tablets were slow, right? Well, not quite…

An early Xmas present to myself, the Nexus 5

Yep, I received my Nexus 5 just the other day, and man I’m impressed, everything is so fast. Maybe I was jaded by my old Android 2.35 phone, but I never expected the Nexus 5 to be so snappy and pleasant to browse the internet with. I’m almost preferring it to the iPad even given the massive difference in screen size. Could it actually be quicker than the iPad?

Benchmarking time!

Sunspider is a javascript benchmarking tool, and as such ignores important stuff like DOM manipulation and rendering, but still, for rich single page webapps such as my current project Readlang, raw javascript perfomance is important. Since Sunspider 1.0.2 wasn’t displaying the results page on iOS Chrome, I’ve used the older version 0.9.1 instead.

The Nexus 5 took 693ms to complete, and the iPad took a whopping 6283ms. The iPad 3 is an order of magnitude slower than the Nexus 5!

Could the iPad 3 hardware, released only 20 months before the Nexus 5, really be that much slower?

Let’s try iOS Safari

After browsing some heavyweight sites for a few minutes Safari definitely feels a good bit faster than Chrome, and the benchmarks confirm it. Sunspider 0.9.1 gave iOS Safari a result of 1303.4ms, half the speed of the Nexus 5 but almost 5 times the speed of iOS Chrome!

Sunspider 0.9.1 Results

(lower is better)

Android Chrome (Nexus 5, Android 4.4):693.2ms +/- 0.7%
iOS Safari (iPad 3, iOS 7):1303.4ms +/- 0.4%
iOS Chrome* (iPad 3, iOS 7):6258.5ms +/- 0.4%

* Strangely, while running the benchmark on iOS Chrome the little spinner in the iOS 7 status bar which normally indicates network activity would flicker on and off, which didn’t happen when running on iOS Safari. Probably not a clue to the bad perfomance though because this never happened when running Octane 2.0 which gave just as abysmal a result.

Octane 2.0 results

In case the Sunspider results were a fluke, here are results from Octance 2.0, a javascript benchmarking suite from Google representing the kind of code actually used in modern javascript heavy web-apps. I repeated each test hence the two results for each browser.

(higher is better)

Android Chrome (Nexus 5, Android 4.4):4042, 3876
iOS Safari (iPad 3, iOS 7):1346, 1484
iOS Chrome (iPad 3, iOS 7):260, 260

This test, probably more taxing than Sunspider 0.9.1, shows the same trend but this time the differences are actually magnified. The Nexus 5 was almost 3 times faster than iOS Safari, and this time iOS Safari was over 5 times faster than iOS Chrome. (Boy did Chrome feel slow on this one, each run took 13 minutes!)

Conclusion

iOS Chrome is a terrible choice for running javascript heavy apps. I think you’d need to be incredibly enamoured with Chrome’s UI or syncing features to even consider using it instead of Safari given the difference in performance. I’m certainly switching to Safari for my daily iOS browsing.