I know that there is a "Simulate Memory Warning" on the simulator. However, many people said that the app should be test on real device. How can I test the memory low condition on real device? Running as many apps as possible in background? Any better way?
Thanks.
You can use private API to send low memory message:
Though remember to remove from release otherwise your app might get rejected ;)
Kudos goes to: http://forum.148apps.com/showpost.php?p=8603&postcount=3
There are a few tricks you can try:
Put some NSLog statements in your low memory delegate calls to see if your app is getting stress tested in normal use.
If not:
Prior to running your app, start several large slow web sites downloading in Safari; then while testing your app, send some large emails to a push account on your test device.
For stress testing purpose (use a preprocessor define that is NOT in your distribution build), malloc an extra 10 or 20 or some-test-number megabytes that your app doesn't need, write into it some junk/rand() data to dirty the pages, and don't release it (you can purposely leak 25MB for max stress).
You can also create your own test background app, say a music player that plays silence, put it in the background before testing your app, and have the background audio callback allocate and dirty some large chunks of data.
The previous answer doesn't compile on my machine. The workaround is to call
performSelector:
, like this: