Performance question here : my Galaxy Nexus is really slow right after I connect it to a WiFi network after long periods not being connected to the internet. That doesn't happen on EDGE or on 4G, and after a while it goes back to normal.

My first guess for the culprit is : the low latency of WiFi networks, combined with the (potentially large) number of apps waiting for a connection to wake up, can spawn a lot of threads, which get data almost immediately, and start processing it right away, all at the same time (unlike EDGE where data can take a while to download). Which obviously clog the CPU and RAM. Is there an app or conmand-line tool (phone is rooted and running CyanogenMod 10, btw) that can show me which ones are doing too much work?

Off-Topic: As a developer, do you know of any tricks that can minimize that effect when syncing in background? Other than not doing it when unnecessary, of course!

  • Welcome to Android Enthusiasts! Interesting question but unfortunately your second question is off-topic (questions from programming viewpoint are not allowed, see also the FAQ). You should ask that on stackoverflow
    – THelper
    Nov 7 '12 at 10:42
  • Ah, sorry about that, my bad. I'm leaving that out as an OT question in case someone has a quick 2-cents link/idea, and I'll ask in SO instead. What I'm really interested about though, is the first one. If I can weed out the apps that use too much CPU on wakeup I'd be happy ;)
    – F.X.
    Nov 7 '12 at 10:57
  • The OS Monitor app might do the trick.
    – THelper
    Nov 7 '12 at 11:29
  • I'll check it out, thanks! I was wondering if there was any way to display which apps are registered on WiFi/network wakeup, but I guess that OS Monitor or even htop can do the trick...
    – F.X.
    Nov 7 '12 at 12:13

If you have adb shell ,you can try below command

top -m 10

which displays top 10 applications which takes CPU.

  • 1
    That's actually what I ended up doing, without much success. The latest CyanogenMod M release (10.1) was a huge help however. It still lags behind, but much less than before.
    – F.X.
    Jan 30 '13 at 8:48

This has become more and more annoying for me as I installed more apps. I solved this problem by installing one of those "battery saver" apps that can schedule when the WiFi goes up or down (3G battery saver pro). I configured it to connect to the network for a couple of minutes every half hour (might change it to every hour to saver battery life) and to leave the WiFi on when I unlock the screen. Tablet is now responsive again! No more waiting for a minute or so to interact with it when I turn it on in the morning or when I come home from work! Yay!

  • I actually recently discovered that disk I/O was the bottleneck in those cases. I had about 500M free space, and SSD disks lag behind a lot when full, so freeing a few hundred megs helped a lot. Additionally, in case you're running Cyanogen, have you tried changing the I/O scheduler to deadline? It seemed to improve performance somewhat, but I'm wary of this being just another placebo!
    – F.X.
    Jul 9 '13 at 8:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.