Play Store App Updates

One of the most demanding real-world tasks on Android is the installing and updating of applications. Doing mass-updates on several applications at once can heat up most devices as we see heavy computational load not only in the install process, but also caused by ART's ahead-of-time compilation and optimization process.

I recorded a ~80s period where the Play Store updated several installation packages, such as Android's WebView component as well as a few other user-applications.

The Play Store update process seems to be extremely liberal with spawning threads. The little cores are severely over-capacity as we see package updates loading up to 8-9 threads onto the cluster. The two major peaks towards the end of the log especially demonstrate this fact as all CPUs vastly exceed the optimal run-queue depth of 1 when under load, which causes the scheduler to need to preemt between multiple processes.

While it may have been intriguing to see the little cores loaded to such extent, the big cluster seems outright shocking as it as well sees very significant thread-placement. This is one of the rare scenarios where having 4 big cores is not enough. Similarly to the little cores, we see peaks where the run-queue depth vastly exceeds the optimal value of 1.

When looking at the total system run-queue depth, things look for a lack of better description, quite ridiculous. We routinely have peaks where all 8 cores of the system are fully loaded and peak at over 10 threads. It looks like Google is able to massively parallelize the app update process and take advantage of even the highest core-count SoCs. This scenario is absolutely about maximum throughput and performance while utilizing all available hardware resources.

App: Play Store Open & Scroll Camera: Launch
Comments Locked

157 Comments

View All Comments

  • lilmoe - Tuesday, September 1, 2015 - link

    "if the interest is high enough"

    :/ Really?
  • zaza - Saturday, September 5, 2015 - link

    Yes Please. It would be nice to see if the same or similar tests works on snaprdagon 810,801 and 615 and Mediatek chips, and intel SoC
  • erchni - Thursday, September 17, 2015 - link

    A follow-up with synthetic would be quite interesting.
  • aryonoco - Saturday, September 5, 2015 - link

    I just wanted to reiterate the point here an thank the author for this great piece of technical investigative journalism.

    Andrei, thank you for this work. It is hugely invaluable and insightful.
  • tipoo - Tuesday, September 1, 2015 - link

    Very interesting article. Seems like the mantra of "more cores on mobile are just marketing" was wrong in terms of Android, seems to dip into both four core big and little clusters pretty well. That puts the single thread performance having lagged behind the Apple A series (up until the S6 at least) in a new light, since it can in fact use the full multicore performance.
  • tipoo - Tuesday, September 1, 2015 - link

    *That is, barring gaming. More core Android functions do well with multithreading though.
  • jjj - Tuesday, September 1, 2015 - link

    In gaming there is a big advantage. By using mostly the small cores you allow for more TDP to go to the GPU. One more relevant thing would console ports in the next couple of years when mobile GPUs will catch up with consoles. The current consoles have 8 small cores and that fits just right with many small cores in Android.
  • retrospooty - Tuesday, September 1, 2015 - link

    Not really sure whos "mantra" that was. People that don't understand what the big.little architecture is like some angry Apple fans?
  • tipoo - Tuesday, September 1, 2015 - link

    Well sure, whoever they were, but it was a pretty common refrain for every 8 core SoC.
  • soccerballtux - Tuesday, September 1, 2015 - link

    for one, it was my mantra. I liked having 4 cores because 2 wasn't enough, but according to my hotplugging times, I only really need 3 for optimal experience most of the time

Log in

Don't have an account? Sign up now