By John Gruber
As part of the iPhone SDK developer program, I’ve been running a seed of the GM build of the new OS on my original iPhone for a few weeks now. Overall, there are surprisingly few visible changes to the system. Many of the built-in apps are, at least visibly, identical to the versions in iPhone OS 1.1.4. This includes Safari — if anything has changed in Safari’s user interface, I haven’t noticed it.1
But under the hood, MobileSafari 2.0’s performance is hugely improved over 1.1.4. Everything related to web surfing feels faster, and in side-by-side comparisons using my wife’s iPhone running 1.1.4, web pages consistently load faster on 2.0, both via Wi-Fi and EDGE. This has nothing to do with the new iPhone 3G hardware — this is about dramatic performance improvements on original iPhones upgraded to the 2.0 OS.
|Test||1.0.1||1.1.4||2.0||Vs. 1.0.1 / 1.1.4|
|100,000 iterations||3.209||1.096||0.145||22× / 8×|
|10,000 divisions||0.413||0.181||0.029||14× / 6×|
|10,000 sin(x) calls||0.709||0.373||0.140||5× / 3×|
|10,000 string allocations||0.777||0.434||0.133||6× / 3×|
|10,000 function calls||0.904||0.595||0.115||8× / 5×|
The last column shows how many times faster the 2.0 version of MobileSafari was versus 1.0.1 and 1.1.4. The same results, charted (smaller bars are faster):
For all the hubbub regarding the new App Store, most “iPhone software” runs in the web browser. But improvements in WebKit performance often help native iPhone app performance, too — a slew of my favorite native iPhone apps have built-in WebKit browsers (e.g., NetNewsWire, Twitterrific, Instapaper, and Cocktails). When WebKit performance improves, any app that uses WebKit improves, and WebKit improved a lot between iPhone 1.1.4 and 2.0.0.
Except for the very cool new feature where you can tap-and-hold on an image to bring up a dialog that lets you save the image to your iPhone camera roll. ↩︎