强制iOS耗尽内存

时间:2012-02-20 23:38:56

标签: ios memory-management

我花了最后4个小时试图让我的iPad耗尽内存而我却无法实现。

噢,具有讽刺意味。

我想测试一些日志记录代码,我需要App因为使用太多内存而被杀死,但无论我分配多少内存,我都无法实现。我正在使用以下代码强调它:

if (tempArray == nil)
    tempArray = [NSMutableArray array];

NSData *data = [NSData dataWithBytes:malloc(10000000) length:10000000];

[tempArray addObject:data];

我每帧运行一次(每秒30次)。最终malloc只返回NULL,但我没有看到像我的测试人员看到的内存警告。 tempArray正在添加NSData对象。

我正在设备上运行它。是否有一种可靠的方法让你的应用程序使用太多内存并被杀死?

3 个答案:

答案 0 :(得分:2)

尝试多次加载大图片并且永远不会释放它,就像您目前使用NSData一样。

答案 1 :(得分:2)

您可以在使用模拟器时模拟低内存情况,该选项可在iOS模拟器的“硬件”菜单下找到。

答案 2 :(得分:0)

要增加Swift 5中的内存压力,您可以创建大型Data实例。例如,此方法每次调用浪费约500 MB:

static var wastedMemory: Data = Data()

static func waste() {
  let data = Data(repeating: 0, count: 500_000_000)
  wastedMemory.append(data)
}