如何在真正的iphone/ipad设备(不是模拟器)上测试内存不足的情况?

ars*_*uet 6 memory iphone ipad ios-simulator

我知道模拟器上有一个"模拟内存警告".但是,很多人都说该应用应该在真实设备上进行测试.如何在真实设备上测试内存不足情况?在后台运行尽可能多的应用程序?有更好的方法吗?

谢谢.

xvg*_*vga 10

您可以使用私有API发送低内存消息:

[[UIApplication sharedApplication] _performMemoryWarning];
Run Code Online (Sandbox Code Playgroud)

虽然记得从发布中移除否则您的应用可能会被拒绝;)

Kudos访问:http://forum.148apps.com/showpost.php?p = 8603&posttcount = 3


mat*_*att 5

上一个答案无法在我的机器上编译.解决方法是调用performSelector:,如下所示:

[[UIApplication sharedApplication] performSelector:@selector(_performMemoryWarning)];
Run Code Online (Sandbox Code Playgroud)


hot*_*aw2 1

您可以尝试一些技巧:

在低内存委托调用中放入一些 NSLog 语句,以查看您的应用程序是否在正常使用中进行压力测试。

如果不:

在运行您的应用程序之前,请在 Safari 中启动几个大型缓慢网站的下载;然后在测试您的应用程序时,向测试设备上的推送帐户发送一些大电子邮件。

出于压力测试目的(使用不在您的发行版本中的预处理器定义),malloc 您的应用程序不需要的额外 10 或 20 或某些测试数量的兆字节,向其中写入一些垃圾/rand() 数据弄脏页面,并且不要释放它(您可以故意泄漏 25MB 以获得最大压力)。

您还可以创建自己的测试后台应用程序,例如播放静音的音乐播放器,在测试应用程序之前将其置于后台,并让后台音频回调分配和弄脏一些大数据块。