Most operating systems are set to use a 4KB page size since that’s what most CPUs support, but Android is often running on Arm CPUs that can support 16KB page size. So Google decided to enable 16 KB page size as a developer option in selected Android devices since it can deliver a 5 to 10% boost in performance, at the cost of using around 9% extra memory.
Contrary to 32-bit/64-bit mode, a page size is not an Application Binary Interface (ABI), so once an application is fixed to be page size agnostic, it can run on both 4 KB and 16 KB devices without modifications. Apps written with Java or Kotlin don’t need modifications, but those that use native code (C/C++) or dependencies must be recompiled for compatibility with 16 KB page size devices.
Google provides some details about the benefits of 16 KB page sizes on the developer website:
- Lower app launch times while the system is under memory pressure: 3.16% lower on average, with more significant improvements (up to 30%) for some apps
- Reduced power draw during app launch: 4.56% reduction on average
- Faster camera launch: 4.48% faster hot starts on average, and 6.60% faster cold starts on average
- Improved system boot time: improved by 1.5% (approximately 0.8 seconds) on average
Google says the improvements above are based on initial testing, and it’s unclear which hardware platform they used for testing. They also explain the “Linux kernel is deeply tied to a specific page size, so we must choose which page size to use when building the kernel, while the rest of the operating system remains the same”. As a side note, you can check the page size in Linux with the following command:
1 2 |
$ getconf PAGESIZE 4096 |
The 16KB page size option will be limited to the Pixel 8 and Pixel 8 Pro with Android 15 QPR1 Beta at first, but the company is also working with partners to make a developer option available on existing devices. An alternative is to make use of the 16 KB emulator target available in Android Studio.
Besides the aforelinked developer website, developers will also find more details about the change in a post on the Android Developer blog.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
I remember the western digital mycloud ran 64k page size on the comcerto 2000 SoC.
Are there any desktop distro with large page size?
10% more performance is something that Intel tells you is worth double the price.
Until someone discovers a vulnerability that requires a microcode change that easily eats up that performance gain.
🙂
Well said.
So, since ARM CPU’s are very weak nowadays, we would need that extra 10% sacrificing 9% of the limited storage we have? *SARCASM HERE*
Thanks, but no. Just push phone makers to have a microSD slot, since we can have eSIM cards together with one physical SIM.
Memory isn’t storage.