I am developing an Application for iPad & it consumes 5.5 MB at max on RAM of the iPad. I have ensured all this stuff using Instruments number of times. As soon as App uses little bit more memory, It throws memory warnings & app start behaving abnormally.
- I have implemented the lines of code for freeing the memory in did-receive memory warning.
- I also have ensured that
NO LEAKSin the entire app. - I came to know that App needs at-least 6 mb memory.
Here is the general flow of the app.
log in -> 1st-list View -> 2nd-list view -> 3rd-list view -> 4th-Map & listview -> 5.Map&List
brief of each screen.
- log-in – simple screen with username-pswd, making a web-service call & authenticating user
- based on result of authentication, it will fetch few more data & list it on 1st-list View screen.
- based on selection from 1st-list, app will load list on 2nd-list view
- based on selection from 2nd-list, app will load list on 3rd-list view
- based on selection from 3rd-list, app will load list & map will have pins relatively.
- based on annotation from Map, app will navigate to another maps & different pins.
Here, app receives memory warnings on 6th screen. I have ensured all coding standards & all importance of all objects.
In Above case, All screens are very necessary, I am using Navigation Controller & just pushing view-controllers one by one. no duplications – ensured twice.
Now, the point is, App is being tested on iPad-1 with iOS 4.1 & all apps are forcefully closed before starting the testing of the app.
THOUGH, app receives warnings @ just 5.5 mb usage.
I tried to convince my project managers that, this amount of memory usage is high & they are asking me – there should some option to set MEMORY. How this kind of High Graphics games & apps are running smoothly ?
I can’t find appropriate document from Apple saying LIMIT. I have no answer to them.
If setting Memory limit is not possible, I am requesting you to provide Appropriate PROOF link, so that I can show it to my Project Manager.
If that kind of settings is possible, I am highly eager to know how to make that.
I doubt you will find any positive statement about memory limits for an app under iOS coming from Apple docs.
But if you google “ios app available memory” you will find a lot of information; e.g., this S.O. thread.
In my experience, my apps can sustain a “peak” memory usage of about 20MB (depending on the device state), but then memory use must quickly go well below the 10MB threshold for the app not to be killed (I would say that 6-8MB is more precise figure). Sometimes an app can be killed just because a peak cannot be “undone” fast enough.
One piece of information that might be useful for your managers is the output from the “Memory Monitor” tool in Instruments, specifically the “free physical memory”. If you use it, you will invariably see that your app will be killed when the “free physical memory” goes below a given limit (as per Instruments output), approaching zero left memory.
Now, whether that limit is reached because you allocated some memory (which is reported by the Allocations or Leaks tools) or because of other factors (a framework loaded into memory? something in the iOS kernel or that is not tracked by Instruments?) you cannot know. But for sure you can follow how the free physical memory in the device varies over time with the use of your app.
Hope this helps.