|
|
|
|
|
by fathyb
614 days ago
|
|
> On macOS memory can be paged to/from disk. On iOS it isn’t and applications must free memory when asked or be terminated Not sure what you meant by that, you always could `mmap` files into memory on iOS. Back in the 32 bits days there was a ~700 MB limit due to the address space, but there aren't anymore nowadays with 64 bits. If `didReceiveMemoryWarning` is called on your app, then you need to free resident memory but the kernel will take care of dumping file-backed memory pages for you. |
|
Not true, unless something changed recently (definitely more recently than the 32->64 transition). All iPhones have a virtual memory limit (although the limit is higher on phones with more physical RAM).
I know this for sure because several years ago I was the main person in charge of reducing OOM kills on the Facebook iPhone app and virtual memory exhaustion on 64-bit phones was definitely an issue.
See here for where this is enforced in XNU: https://github.com/apple-oss-distributions/xnu/blob/xnu-1121...
I assume Apple does this specifically because they want to prevent apps from simulating swap space by mapping a big file and allocating from it.