(no title)
fathyb | 1 year ago
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.
umanwizard|1 year ago
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.
kuhsaft|1 year ago
[1] https://en.wikipedia.org/wiki/Memory_paging
Rohansi|1 year ago