Sounds like I wasted your time, sorry. One thing worth explaining is, it
shouldn't necessarily be a problem in iOS, launching an App that needs, say, 150MB when only 20MB is free.
When an App is in background it might take a pragmatic approach to memory usage, freeing up most resources but hanging onto to anything that would be time-consuming to reconstruct, on the basis that the user may bring it back to foreground again. This is one reason that 'free' memory, as displayed by that Scanner App, might become amazingly low. Even when in foreground, Apps sometimes face a choice... do they keep (say) some big image data in memory even though it's not strictly needed on the screen the user's looking at, or do they free it off and reload it when it is needed - at risk of causing a glitch while the reload happens?
So far as I understand (welcome anybody else who knows better!) what should happen is, when a new App is launched the OS realises there's a shortfall, and so notifies other background Apps and processes, requesting that they free up some memory. Often they can do so, and just accept that there'll be some reloading of data when they come back to foreground. If they don't comply, they will be jettisoned - which will equally free up the required memory. Either way, the new App gets the memory it needs, even though it may have looked like there wasn't enough.
The problem is of course, if all that's left are essential system processes and Apps that are using no appreciable memory, and there's still not enough to run the new App, then you won't get a a quart into a pint pot. The newly launched App will fail. It will probably fail ungracefully, because much common coding practice is to not bother checking whether object allocations were successful.
You'll not like me shifting the blame away from Apple, but I am beginning to think the Dev's must take some responsibility too. As a dev, I get access to early Betas of new iOS releases and plenty of opportunity to test and identify any issues, such as the possibility that iPad 2 may simply not contain enough RAM to run my App in the new iOS.
Of course the fact that system Apps like Safari act up too, defuses the previous argument a little. And there's also the problem that the Dev may be simply unable to reduce the memory footprint enough. And then what can he/she do? It's already installed on the user's iPad and will still be there after the upgrade.
![Sad :(](https://forum.kitz.co.uk/Smileys/kitzemotes/sad.gif)
You're also right that the longer you play a game, the more memory it might use, and not just because the object count increases. Lots of different models are possible but, for my own Apps, I keep a dictionary of 'levels solved'. That dictionary can be written to disk in a matter of milliseconds but sometimes every millisecond counts so in the absence of memory warnings, I might keep it in RAM. So obviously, it does get bigger and bigger with progress through the game. But I do actually test each App, a special install with a spoofed worst case dictionary, to make sure it doesn't get to too ridiculous a size.