iOS设备和iPhone模拟器之间的内存组织的差异

时间:2012-07-25 21:48:48

标签: objective-c ios memory-management ios-simulator

我正在尝试使用Xcode 4.3.3和iPhone 5.1模拟器开发应用程序。

当我在模拟器上运行这个应用程序时,我没有收到任何警告,而且它运行良好。但是,当我尝试在iOS设备上进行此操作时,我收到一条警告消息收到内存警告。当应用程序开始在屏幕上显示图像时,我收到此警告消息。我正在使用github中可用的SDWebImage项目来显示图像。我认为这个问题与内存组织从iOS设备到模拟器的不同之处有关。我看过这个问题How does building for iOS device and simulator actually differ?,看看iOS设备和模拟器的构建应用程序有何不同。但是,我发现的记忆组织并没有让我满意。你们知道为什么会这样吗?

另一个问题:在内存管理环境中,应用程序是否有任何限制?我的意思是,例如,假设分配5MB内存,我会得到任何指向此问题的消息吗?

提前致谢。

2 个答案:

答案 0 :(得分:3)

除非您自己创建内存警告(使用“模拟内存警告”选项),否则您将永远不会在模拟器中收到内存警告。您可以访问Mac的整个内存,包括虚拟内存。你最好不要使用移动应用程序......

如果您在设备上看到内存警告,则表示您使用的内存过多。确定您遇到问题的最佳工具是仪器,特别是分配仪器。这将向您展示最重要的内存以及您应该关注的位置。大多数内存警告都是由于泄漏或保留循环引起的。

答案 1 :(得分:1)

你最好不要使用模拟器调试,因为模拟器s memory is the mac , but your device的内存非常有限,模拟器的功能更好