Beta versions of iOS 15 and iPadOS 15 now give developers the option of requesting more RAM than the current 5GB maximum per app, with limitations.
Apple has always set a cap on how much RAM any one app can use on the iPad, but it's become more of an issue as the devices themselves physically include more. Even on an M1 iPad Pro with the current maximum 16GB RAM, apps have been limited to around 5GB each.
Now a new developer note regarding the beta releases of iOS 15 and iPadOS 15 says that apps may request more RAM. It's done via a setting that seemingly does not let the apps specify how much more RAM they want, and Apple cautions that the feature will not be available on every iPad or iPhone.
"[It is a] Boolean value that indicates whether core features of your app may perform better with a higher memory limit on supported devices," says Apple. "If you use this entitlement, make sure your app still behaves correctly if additional memory isn't available."
Additional RAM may not be granted to a requesting app, based on total device capacity, or other apps using that RAM.
Apple provides a check that developers can use "to determine the amount of memory available." Perhaps giving a clue to why Apple imposes limits in the first place, the company also cautions that, "higher memory use can affect system performance."
Keep up with everything Apple in the weekly AppleInsider Podcast — and get a fast news update from AppleInsider Daily. Just say, "Hey, Siri," to your HomePod mini and ask for these podcasts, and our latest HomeKit Insider episode too. If you want an ad-free main AppleInsider Podcast experience, you can support the AppleInsider podcast by subscribing for $5 per month through Apple's Podcasts app, or via Patreon if you prefer any other podcast player.
9 Comments
The problem: more available RAM makes developers lazy and wasteful with resources.
But there are applications where the data sets themselves are huge, such as image data, DNA databases, audio/video recordings.
Having such data memory mapped allows for more elegant algorithms and letting the OS (which is generally better at it) handle memory management.
But that would require full-on virtual memory with paging and all; not sure that fits Apple’s iOS model…
I think what some don't realize is that iOS has always allowed you to use virtual memory to use more memory than available ram using mmap() or NSData. Further the limit was 5GB of address space--not memory. So mmap() wouldn't help. It would simply fail when you ran out of address space. This is very different than not having enough memory to keep, say, your dataset resident.
I’m not sure I would describe this as a “workaround”
any more than the Camera access API is a workaround for not having access to the camera…
It’s a supported, documented feature of the operating system.
With the speed of the latest SSD technology, memory swapping could be quite efficient. The PS5 SSD can read data at 5.5GB/s. Apple should be able to offload RAM to the SSD and load it again when needed without the user even noticing in most cases.
And another problem goes by the wayside.