A joint study between Microsoft Research and Purdue University has taken a look at how smartphone applications handle power consumption and come to some damning conclusions where energy efficiency is concerned. This is an issue that's become more important as smartphone specs have skyrocketed without a similar increase in battery life. The paper only considers devices running Android and Windows Mobile, but this isn't a problem that's unique to that platform; Apple's iPhone 4S suffered from battery life issues for months after release, while the new iPad
is ~10% heavier than the old thanks to the need for a heavier battery to power the device's screen. The new iPad's battery holds 67% more power (11,666mAh compared to 6,994mAH for the iPad 2), but total device battery life is exactly the same.
The study considered multiple popular smartphone apps, including Angry Birds, Facebook, and the phone's browser. The first sections of the paper discuss the eprof
(energy profiler) tool the researchers built to collect data on application behavior and how the tool functions. A smartphone is an extraordinarily complex piece of hardware that hides a great deal of activity from the user by default. The smartphones used were all fairly dated; the three phones in question were the HTC Magic running Android 2.0 (released in 2009), the HTC Tytn on Windows Mobile 6.5 (released in 2006) and the HTC Passion running Android 2.3 (released in 2010).
One of the primary findings of the group is that modern smartphones exhibit "asynchronous power behavior" where "an entity's impact on the power consumption of the phone may persist long after the entity is completed." As a result, components may remain powered up after they've finished executing workloads. This can lead to considerable wasted power, as shown in the graph below.
By not powering the 3G radio down immediately following the last send, the "3G tail" burns 59.6% of the total energy used in the first example. In the second example, there's a 5 second delay inserted between the netconnect and netsend commands. The tail still drags out, accounting for 38% of total energy expenditure.
According to the researchers, a significant amount of the total energy expended in web browsing -- possibly as much as 30-45% -- is wasted through tails. Other factors include GPS location functions and the use of wakelocks, which keep a CPU partially alert rather than allowing it to drop to full standby. In virtually every case, the long tails are kicked off by advertising agents (Angry Bird's advertising client, Flurry, accounts for 45% of the application's total power use).
There are several take-aways from this information. First, it's evidence that in some cases, buying the ad-free version of a product can directly translate into better battery life. Second, it's something that heavy hitters are going to pay attention to. Process technologies don't produce the same level of power consumption reductions that they used to; that's why initiatives like Intel's NTV and research into all-digital radios are so important. Hardware manufacturers are well aware of these trends; they bring with them an imperative to optimize every single step of the smartphone experience. This very much includes things like bundling requests and data read/writes to ensure optimum execution efficiency and it means powering the device down every time it's possible.
The original paper
is a dense piece of work, but hopefully it sparks increased research into these fields. With hardware improvements far more difficult to achieve than they've been in recent years, we suspect companies will turn to software and low-level optimizations to boost future product sales.