Amazon Kindle Fire Reviewby Anand Lal Shimpi & Vivek Gowri on November 29, 2011 3:31 AM EST
The Amazon Silk Browser
Although Amazon has done an excellent job in making the Fire's home screen nice and responsive (read: fully GPU accelerated via a backing store), the browser does not receive the same treatment.
I don't doubt that Amazon will eventually enable a fully GPU accelerated browser at some point in the future, its failure to do so today is irksome. The missing feature is particularly upsetting in light of another, fairly large customization to the browsing experience that Amazon has chosen to introduce instead: cloud based caching.
If there's one thing I'm not particularly happy about with the Kindle Fire it's the web browser. I've already explained that Amazon didn't bother to deliver the smooth, GPU accelerated experience we've come to expect from Samsung's SGS2 browser, Honeycomb or iOS. Web page loading performance is reasonable but the actual browsing experience suffers. What may have been understandable a year ago is no longer the case today, particularly with Ice Cream Sandwich weeks if not days away from a US release.
My biggest issues have nothing to do with performance however, they stem from the cloud accelerated browsing features of Silk. I've already written about much of this publicly but I'll start with a quick recap.
Amazon insists that the browser is an aging limitation on the overall mobile experience. A single page load can require negotiating connections with dozens of servers, followed by downloading megabytes of content, none of which are optimized for mobile devices. Why assume that all page elements are optimally compressed for delivery to a sub-1080p display?
Amazon feels the best way to address delivering the desktop web to mobile devices is via its own cloud services. With the Silk browser's "accelerated page loading" feature enabled, any website you load is proxied through Amazon's AWS servers. The Silk browser then only has to deal with a single host that all content is funneled through:
With all content filtered through Amazon's servers there are two things that can happen: 1) Amazon can learn a lot about how Silk users browse the web and 2) Amazon can optimize the content within its cloud before getting to you.
Let's talk about the second advantage. Images and data can be (re)compressed before they get to you and Amazon can prefetch additional pages based on what it thinks you'll request next. On a greater scale, Amazon can reduce the bandwidth load to site owners by serving already cached data from its AWS cloud rather than re-requesting the elements from the original servers. For one person accessing a site there are no savings, but with thousands of people pulling the same page the benefit is clear. There's a lot of good that can come from Silk's page loading optimizations, unfortunately almost none of it is realized today.
I thought it odd that Amazon would debut cloud-based caching on a device that was WiFi only. Saving bandwidth is really important on cellular connections that are either low performance or limited by data use caps (or both). Neither of these things applies to the Kindle Fire in its state today. It's no surprise that using Silk with accelerated page loading enabled offers no real benefits on the Kindle Fire.
I detailed all of my testing procedures in a separate piece last week, but here are the relevant excerpts:
I started out by doing some raw web page loading tests. I picked three web pages: AnandTech.com, Engadget.com and NYTimes.com. I loaded each one 10 times in a row and averaged all of the run times. I did the same with and without the Silk browser's accelerated page loading feature enabled (cloud caching).
The results are below:
As expected, Amazon's accelerated page loading does nothing to accelerate page loads. In fact, it slows it down compared to going direct to the servers I'm trying to reach. The numbers are mirrored in my own use of the Kindle Fire. Web pages simply load slower if you have this feature enabled.
Amazon also argues that it's enable to improve performance by optimizing content for the device you're viewing it on. In other words, Amazon is able to perform server side compression of things like images to deliver a seemingly lossless reduction in file size and thus improve performance. This claim was a little more difficult to investigate as requesting a full uncompressed JPG didn't seem to go through Amazon's compression routine. Instead I sniffed the Kindle Fire's traffic on my network and looked at total bytes transferred for a handful of page requests. This time I looked at the same three websites from earlier (AT, Engadget, NYTimes) but also added CNN.com for something a bit more mainstream, and Reddit.com for something a bit more awesome (and text heavy).
To deal with the fact that these are live websites with ever changing content I ran all of the tests back to back, ensuring that the actual website content didn't change between runs. I also ran each test at least 5 times to deal with any differences in ads that loaded. I cleared the cache between each run to always request data from Amazon's servers. The results were remarkably consistent. Once again, the data is below:
The average compression ratio for these test web pages through Amazon's servers was 0.891. Everything seemed to reduce fairly predictably, the exception being CNN.com which saw a compression ratio of 0.801. It's possible that CNN's content is unnecessarily large and could stand for some server side optimization of its own. It's interesting that even Reddit, a text heavy site, was able to see some benefits from Amazon's accelerated page loading feature.
It's worth noting the average KB saved by enabling accelerated page loading is only 174KB. That amounts to just under 10% of the 1758KB average page size in this test. If you're severely limited by bandwidth caps, these savings might come in handy but otherwise they're not large enough to be noticeable.
If the amount of data transferred is smaller, but the pages take longer to load this can only mean one thing: the transfer rates are slower from Amazon. Indeed they are:
When loading NYTimes.com I averaged (again, over five runs, cache cleared between each one) 1.93Mbps with accelerated page loading disabled and 1.26Mbps with the feature enabled.
Curious to test my theory about cloud-side caching being a good target for a future 3G Kindle Fire, I tethered the tablet to my iPhone 4S and used AT&T's 3G network for all of the page loads.
I picked three sites this time around: AT, CNN and Engadget. I chose these three because CNN benefitted the most from Amazon's compression and AnandTech was penalized the most by going through Amazon's servers. Engadget was simply a good middle data point between the two.
Unfortunately even on AT&T's 3G network, Amazon's accelerated page loading made things slower. The impact wasn't as noticeable as it was over WiFi, but it's there. If you're a Kindle Fire owner and you want the fastest browsing experience, you'll want to disable Silk's accelerated page loading.
We are at the very beginning of this journey however, Amazon's eventual plans for Silk are far more aggressive than the 10% bandwidth savings we get today:
Depending on the content (and device) Silk could choose just how much of the workload to shift to the cloud. The selection can be dynamic and has some far reaching implications for dumber-than-a-tablet devices. Amazon made it very clear that to deliver an adequate experience on the Kindle Fire it could not sacrifice compute performance. With more server-side offloading technologies like Silk, Amazon could deliver competitive browsing experiences with less client-side compute. Opting for a slower SoC wouldn't just reduce cost but it'd also reduce power consumption, enabling thinner/lighter tablets. Earlier I mentioned how my original Kindle felt like it had the perfect form factor, but the Kindle Fire wasn't able to recreate that magic due to the hardware requirements of the platform - in the long term Silk may be Amazon's ticket to building more capable Kindle-like tablets without making form factor sacrifices.
I'm required to use the future tense here because today it's nothing more than speculation. The bigger problem is today Silk's accelerated page loading does more for Amazon than it does for you. It slows page load times and hands over a ton of behavior data to Amazon:
Amazon insists it doesn't log any user identifiable data and it purges logs at least every 30 days, both of which seem reasonable. Unfortunately neither does anything for the end user today. You're paying Amazon for a Kindle Fire, paying for the content to go on the device, and doing Amazon a huge favor by giving it insight into your browsing habits. This is similar to how the contract with Google works except in Google's case, you're trading behavioral data for a bunch of really good, free user experiences. Amazon needs to deliver something of value in order to make Silk's accelerated page loading an option that its users should use.
For now Amazon quietly leaves accelerated page loading an option enabled by default. I suspect if it hadn't made this decision, no one would use the feature as it actually slows down performance. If Amazon wants to do no evil in this case, it should either make accelerated page loading a compelling feature, or give Kindle users something in return for leaving it enabled (free Amazon Prime perhaps? :)).
Flash Performance & HTML5 Compatibility
As always I looked at Flash/HTML5 performance and HTML5 compatibility with Amazon's Silk browser. Neither is particularly impressive:
|Flash/HTML5 Performance - GUIMark 3|
|Bitmap (HTML5 Cache)||Bitmap (Flash)||Vector Test (HTML5)||Vector Test (Flash)||Compute (HTML5)||Compute (Flash)|
|Amazon Kindle Fire (1024 x 600)||17.6 fps||29.9 fps||7.5 fps||22.6 fps||8.8 fps||28.4 fps|
|Apple iPad 2 (1024 x 768)||19.1 fps||N/A||14.2 fps||N/A||13.4 fps||N/A|
|BlackBerry PlayBook (1024 x 600)||11.2 fps||26.3 fps||10.7 fps||25.9 fps||10.2 fps||23.0 fps|
|HP TouchPad (1024 x 768)||27.7 fps||42.6 fps||9.3 fps||28.5 fps||8.0 fps||22.1 fps|
|HTC Flyer (1024 x 600)||30.3 fps||50.6 fps||12.1 fps||21.4 fps||8.5 fps||26.6 fps|
|Samsung Galaxy Tab 10.1 (1280 x 800)||22.9 fps||25.0 fps||11.4 fps||19.3 fps||11.2 fps||23.6 fps|
Flash/HTML5 performance are at least relatively competitive with other Android tablets, although definitely not the fastest solution here (especially given its lower resolution). I suspect this has more to do with the current implementation of Flash on the Kindle Fire rather than a hardware limitation.
A quick run through HTML5 test shows just how far Amazon has to go with its Silk browser:
|The HTML5 Test|
|Test||Amazon Kindle Fire||Apple iPad 2 (iOS 5.0.1)||HP TouchPad||RIM PlayBook||Samsung Galaxy Tab 10.1|
|Total Score||196 (and 1 bonus point)||296 (and 9 bonus points)||229 (and 5 bonus points)||274 (and 9 bonus points)||222 (and 3 bonus points)|
|Parsing rules||1/11||11 (2 bonus points)||6/11||11 (2 bonus points)||11 (2 bonus points)|
|Video||21/31||21/31 (4 bonus points)||21/31 (4 bonus points)||21/31 (4 bonus points)||21/31|
|Audio||20 (1 bonus point)||20 (3 bonus points)||20 (1 bonus point)||20 (3 bonus points)||20 (1 bonus point)|
|History and navigation||5||5||0/5||5||0/5|
The Acid3 score is a lot better at 95/100: