【发布时间】:2011-05-11 04:46:21
【问题描述】:
我知道模拟器上有“模拟内存警告”。但是,很多人说该应用程序应该在真机上进行测试。如何在真实设备上测试内存不足的情况?在后台运行尽可能多的应用程序?有更好的方法吗?
谢谢。
【问题讨论】:
标签: iphone ipad memory ios-simulator
我知道模拟器上有“模拟内存警告”。但是,很多人说该应用程序应该在真机上进行测试。如何在真实设备上测试内存不足的情况?在后台运行尽可能多的应用程序?有更好的方法吗?
谢谢。
【问题讨论】:
标签: iphone ipad memory ios-simulator
您可以使用私有 API 发送低内存消息:
[[UIApplication sharedApplication] _performMemoryWarning];
虽然记得从发布中删除,否则您的应用可能会被拒绝;)
【讨论】:
之前的答案无法在我的机器上编译。解决方法是调用performSelector:,如下所示:
[[UIApplication sharedApplication] performSelector:@selector(_performMemoryWarning)];
【讨论】:
您可以尝试一些技巧:
将一些 NSLog 语句放入您的低内存委托调用中,以查看您的应用是否在正常使用中进行压力测试。
如果没有:
在运行您的应用程序之前,在 Safari 中启动几个大型慢速网站下载;然后在测试您的应用时,向您的测试设备上的推送帐户发送一些大型电子邮件。
出于压力测试目的(使用不在您的发行版构建中的预处理器定义),malloc 额外的 10 或 20 或一些测试数兆字节,您的应用不需要,写入一些垃圾/rand( ) 数据来弄脏页面,并且不要释放它(您可以故意泄漏 25MB 以获得最大压力)。
您还可以创建自己的测试后台应用程序,比如播放静音的音乐播放器,在测试应用程序之前将其置于后台,并让后台音频回调分配并弄脏一些大块数据。
【讨论】: