运行仪器时模拟内存警告?

时间:2012-02-11 17:39:21

标签: cocoa-touch memory-management instruments

有办法做到这一点吗?如果是这样,在模拟器和/或真实设备中运行应用程序时如何以及如何完成?

是否有其他方法可以测试仪器中对内存警告的响应?

2 个答案:

答案 0 :(得分:1)

在设备上,据我所知,发出内存警告的唯一方法实际上是创建一个低内存条件。你可以通过分配一大块内存并在几秒钟后释放它来做到这一点(不要忘记释放它,无论如何)。 这可能看起来像黑客,但是产生低内存条件的最可靠方式。

关于模拟器,您可能知道,在模拟器中运行应用程序时使用Instruments检查内存/性能问题并不完全可靠。无论如何,如果你想这样做,你可以尝试发送这个通知:

- (void)simulateMemoryWarning
{
#if TARGET_IPHONE_SIMULATOR
  #ifdef DEBUG
    CFNotificationCenterPostNotification(CFNotificationCenterGetDarwinNotifyCenter(),   (CFStringRef)@"UISimulatedMemoryWarningNotification", NULL, NULL, true);
  #endif
 #endif
}

Source

还要记住模拟器有“硬件/模拟内存警告”命令。

答案 1 :(得分:1)

您可以在运行iPhone模拟器时模拟内存警告,方法是转到菜单并选择:硬件>模拟内存警告,即使在运行仪器期间也可以随时进行。