CPU And System Performance
Google has made a couple of changes in the 5.1 update specific to the Nexus 6 that will impact system performance. For starters, Qualcomm’s thread migration boost feature has been disabled. Prior to the update, the task scheduler would notify the Qualcomm driver whenever a thread migrated from one CPU core to another, and in an effort to increase system responsiveness, the destination core’s frequency would be boosted to the lesser of the origin core’s frequency or 1.7GHz. The boosted core would remain at the higher frequency for at least 20ms. Given the frequency with which threads migrate across cores—sometimes dozens of times per second—this feature has a nontrivial influence on performance and battery life. The similar but different feature that boosts CPU frequency briefly when a touch event is detected is still active, however.
Some of the performance loss (and battery life gain) from disabling the thread migration boost may be offset by the second big change. The Nexus 6 running Android 5.0, like all of the other devices with four or more cores we’ve tested, only kept two cores online, shutting down the other two to reduce static power drain. An updated Nexus 6 will now keep all four cores available, which eliminates the latency involved when activating cores. It should also help the OS spread system load more evenly and possibly improve responsiveness since running processes are less likely to interrupt each other.
System Performance Benchmarks
|Benchmark||Nexus 6Android 5.0||Nexus 6Android 5.1||Difference|
|AndEBench Pro||Device Score||8287||8160||-1.54%|
|Memory Bandwidth||7843 MB/s||7809 MB/s||-0.44%|
|Memory Latency||4633 KOps/s||4915 KOps/s||6.09%|
|3D||28.2 fps||28.7 fps||1.79%|
|Basemark OS II Full||Overall||1368||1395||1.94%|
|Geekbench 3 Single-Core||Geekbench Score||1051||1057||0.57%|
|Geekbench 3 Multi-Core||Geekbench Score||3250||3198||-1.62%|
Looking at the results in the table above, we see a mixture of plusses and minuses. Most of the deltas are small, less than plus or minus 3% and within the tolerance band for these tests; Since many of these synthetic tests keep all available cores fully active, they are not affected by the changes included in the 5.1 update. Where we do see a small loss in performance are less intense CPU-centric workloads such as AndEBench Platform, Basemark OS II System, and PCMark Writing. These tests do not keep all of the cores fully tasked, and subsequently are more sensitive to the thread migration boost. Also, with all four cores active in 5.1—with one or two cores focused on the foreground app and the remaining cores handling storage I/O or processing a background task for example—there’s less thermal/power envelope to set individual cores to their max frequency. This is what happens in the PCMark Writing test, where two or more cores are generally active (there’s several small, interspersed storage reads/writes) but no single core goes above 1497MHz. Running Android 5.0, the Nexus 6 holds two cores at max frequency (2649MHz) for the duration of the test.
The Basemark OS II System test provides another example of the differences in frequency scaling. Both the Math and Multi-Core tests load all available cores at 100%, so we don’t see any difference in behavior or performance between the two different OS versions. Performance in the Single-Core test varies quite a bit when running the 5.1 update, sometimes scoring a little better and other times a little worse than the initial release. It’s the XML Parsing test where we see a significant performance drop-off when running the 5.1 update. With Android 5.0, two cores run at max frequency for the duration the test. After the update, the max frequency is achieved only sporadically, with both cores at max frequency for just a couple short bursts. The end result is less average processing power available in this particular scenario due to the changes made in 5.1.