Modern handset makers know that consumers want a faster mobile web browsing experience, so they put lots of marketing effort into promoting powerful phone CPUs and new wireless connections. When we hear about improvements in reading web pages on your smart phone, the focus is usually on features like a 4G network uplink or a 1 GHz Snapdragon processor. While these characteristics are important, they ignore a prominent aspect in web browsing: the memory cache. The larger the cache, the more the browser can store for quick access when you come back to a site. Last week, the Yahoo! User Interface Blog examined
the different caches various mobile browsers use, and how they can affect the browsing experience.
Turns out, there's quite a bit of difference between the browsers, which affects web pages load on your phone.
The site analyzed the two main types of web cache: component cache and page cache. The component cache stores individual page elements, like image files, JavaScript code, style sheets, and other aspects of a page. The page cache stores the entire page as a single entity, so when shuffling between pages using the back and forward functions of the browser the page loads immediately from the cache.
The Yahoo User Interface Blog tested Android 2.1 on a Nexus One smart phone, webOS 1.4.1 on a Palm Pre, and four different varieties of Apple's iOS on the iPad, iPhone, iPhone 3GS, and iPhone 4. The tests included individual cache limits and support for Last-Modified and ETag page headers, and for whether the cache was preserved after turning the device off and back on.
The original iPhone's OS lagged far behind the other smart phones, with absolutely no component page cache and no support for ETag/Last-Modified, and no power cycle preservation. iOS 3.2 on the iPad fared little better, with a meager 25.6 KB limit for individual components and a 281.6 KB total component cache. The iOS 4.0-equipped iPhone 3GS and iPhone 4 became incrementally better, with respective single/total component caches of 51.2 KB/1 MB and 102.4 KB/1.9 MB. The iOS devices all seem to have unlimited page caches with the exception of the iPad, which can only store 25.6 KB in its page cache. None of the Apple devices preserved data after a power cycle, but every model except the original iPhone supported Last-Modified and ETag headers.
The Palm Pre's webOS 1.4.1 produced mixed results, according to the site's tests. While the OS appeared to preserve data through power cycles and could cache objects and pages up to 1 MB, the site notes that the results shouldn't be considered conclusive or trustworthy.
Google's Android 2.1 was the undisputed victor of the battle, with the best overall cache properties and broadest feature set. The OS could cache up to 2 MB of components, and seemed to have no page cache limit. The site noted that the 2 MB limit might only apply to the Nexus One, and that according to the Android Webkit source tree cache size might rely entirely on available system memory. On top of that, it supported both Last-Modified and ETag headers and preserved its cache through power cycling. Android stands out as the only mobile OS tested with all three features.
These cache limits are a major roadblock in making mobile browsing as fast and powerful as desktop browsing. While Android is currently king of the mountain, it's a very small mountain compared to the desktop peak towering over it. As always, portable devices are limited by their hardware as much as their OS, and we'll see improved browsing as more memory becomes available.