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:
[[UIApplication sharedApplication] _performMemoryWarning];
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
The previous answer doesn't compile on my machine. The workaround is to call performSelector:
, like this:
[[UIApplication sharedApplication] performSelector:@selector(_performMemoryWarning)];
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With