【问题标题】:How to test memory low condition on real iphone/ipad device (not simulator)?如何在真正的 iphone/ipad 设备(不是模拟器)上测试内存不足的情况?
【发布时间】:2011-05-11 04:46:21
【问题描述】:

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

谢谢。

【问题讨论】:

    标签: iphone ipad memory ios-simulator


    【解决方案1】:

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

    [[UIApplication sharedApplication] _performMemoryWarning];
    

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

    感谢:http://forum.148apps.com/showpost.php?p=8603&postcount=3

    【讨论】:

      【解决方案2】:

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

      [[UIApplication sharedApplication] performSelector:@selector(_performMemoryWarning)];
      

      【讨论】:

        【解决方案3】:

        您可以尝试一些技巧:

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

        如果没有:

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-12-11
          • 1970-01-01
          • 1970-01-01
          • 2011-05-27
          • 2010-11-22
          相关资源
          最近更新 更多