Have you noticed that your Chromebook isn’t very responsive until a minute or so after startup? Depending on your hardware, you may not have as higher performing components could mask this. But Google has. And it has a solution to improve initial Chromebook performance in an upcoming Chrome OS update.
The issue is laid out in a description in this code commit. ARCVM “continuously consumes CPU for several minutes on user login before user has even launched any Android app or playstore.”
If you’re not familiar with the term, ARCVM is the virtual machine used to run Android apps on a Chromebook. Based on the description, this virtual machine launches when you boot your Chromebook. This occurs even if you don’t immediately open an Android app or the Google Play Store. And that causes the CPU in your Chromebook to spend most, if not all, of its resources firing up ARCVM.
Even when you may not need it at first. Or at all!
This situation is often referred to as the CPU “being pegged.” If the CPU is mainly focused on completing a single task, the rest of the system is sluggish and laggy.
Ever seen slow response times when you navigate on your Chromebook’s interface? It’s likely the CPU is pegged, although having a limited amount of free memory could also be at play.
So how is Google going to speed up initial Chromebook responsiveness?
A Chrome OS update will restrict the CPU’s availability to fire up ARCVM upon startup. Currently, the code limits this to 25 percent of the CPU, although that figure change based on internal testing. By limiting the ARCVM startup process to only use up to a certain percentage of the CPU, initial Chrome OS performance should improve.
Of course, you might be wondering what happens if you immediately want to use an Android app or the Google Play Store after your Chromebook boots. This solution, as it stands now, has you covered.
This CPU limit for ARCVM only takes place when your Chromebook starts up:
This CL improves the situation by throttling ArcVm when it is first placed in the background. Once it is moved to the foreground, the throttling is removed. Throttling is then never added back until the device reboots.
As I read it, if you actively open an Android app or the Play Store, the CPU throttling limitation is immediately removed. That will allow ARCVM to spin up faster, which makes sense. When you want to run an Android app, you’ll get the same experience as you do today. When you start up and just want to use Chrome OS, CPU resources won’t be wasted on creating the virtual machine for Android apps.
There’s no indication of which Chrome OS update version this feature will arrive, so I can’t hazard a guess. And I don’t see any indication (yet) that this will be implemented with a user-facing experimental flag, although that may change.
10 Comments
Just turn off Android and switch to PWAs already. You’ll save time, battery life, help the environment and get rid of the schizophrenic UX.
I generally do because I don’t want the performance hit. But happy to see this being addressed for folks that use Android apps daily.
If all functionality of play store or even 10% of it was available in PWA, I’d stop using chrome os. I get twice as much battery life running windows or even plain linux on the same hardware as a chrome book. There’s your time, battery and environment saving right there.
BTW, the performance of android apps is far better than PWAs and even crostini apps. At least on my hardware (C13 yoga).
What functionality are you missing?
I’m afraid this just confirms my point… Why would pure Chrome on top of Linux kernel need more battery than full-blown Windows or Linux?
Windows is probably limiting his CPU to make battery life good, Chrome OS probably not doing so.
As a casual ChrOS user I’d love to dispense with Android altogether — indeed I tried already. The functionality gap, even for more my limited applications, is prohibitive. Specifically media consumption: Chrome (with extension) chokes on mkv video playback (hence VLC for Android) and the UI for internet radio and podcasts is kludgy, stuck somewhere in the mid aughts. If Google would develop this side of the OS, goodbye Android.
Use the penguin linux container instead of Android. It doesn’t have the performance penalty of running a kludgy VM and things like VLC work just fine.
Oh yes, if only Chromium OS devs knew that they just need to make Chrome as slow as on Windows to get better battery life. 😉
I bought my first Chromebook 3.5 years ago and 6 months from now, Google will stop updates on my device.
I thought I had a good reason to try Chromebook, and my original reason has changed.
I am happy to have tried Chromebook to be fully convinced that my first purchase was my Last time I waste any money for Chromebook.
I do not take credit for this comment which is excellent… after all these years, Chromebook does not know what it is and does not know what wants to be!
I know what I am going to do with the good hardware. I am going to load it with free usable OS.
Half the apps I use on my tablet are Linux, the other half are Android. I use the Android version of Krita, better integration. PWAs are spotty… How’s the internet doing today?