App: Reddit Sync Scrolling - The Mobile CPU Core-Count Debate: Analyzing The Real World

June 2024 ยท 2 minute read

Reddit Sync Scrolling

Staying on the Sync app, we scroll through cards with their respective contents. Images and thumbnails are loaded in the background while being rendered whenever the scroll animation stops.

The little cores in this scenario are virtually sitting idle as for most of the time we don't have much activity placed on them. 

The big core activity in this scenario is interesting: While we see all 4 CPUs having activity placed on them, the threads never manage to exceed ~30-35% load capacity. This is also quite the extreme scenario in terms of the power state distribution: It seems the load on the cores is so fine-grained that the CPU Idle system greatly prefers to choose clock-gating state instead of the power-collapse state. The CPU frequency points out that we're also dealing with some very burst loads as we see the cluster clock up to 1.7GHz. 

Again, in terms of actual total run-queue depth this task could have easily been done by a 2-core SoC such as Apple's A6/7/8 without losing on performance. What one has to consider though is that the per-CPU load on such a SoC would be much higher, requiring higher single-CPU performance or frequency. Because the app actually manages to spread out the load equally over 4 CPUs, it should actually be able to take advantage of pararellism for the sake of power efficiency instead of performance.

ncG1vNJzZmivp6x7orrAp5utnZOde6S7zGiKoaenZJavsMSxZnJtYW2MpJzAoJx2aWFbrq24nH%2BYpauVW8CwvtN2Z1%2BokZyyfoWFrKOun22ptaZ5zKiZoqSVYrCxwYycpqudk6TCr8CMnZybmaSa