4

我在没有太多应用程序同时运行的开发设备上构建我的应用程序。我希望我的客户在打开任意数量的其他应用程序的情况下运行该应用程序。为确保我的应用不会因内存问题而崩溃,我想在预期的操作条件下测试我的应用。

这就提出了一个问题——双击主页按钮栏中可见的其他应用程序的数量是否会影响设备的内存使用量?换句话说,如果我打开设备上的每个应用程序,然后启动我的应用程序,与关闭所有其他应用程序相比,我是否更有可能收到内存警告?

我记得听过一个 WWDC 演示文稿,其中提到对于一些使用 <8mb 内存的应用程序,当应用程序最小化时,它们的内存被写入磁盘,不确定这会发生什么变化。

谢谢你的澄清。

4

3 回答 3

4

双击主页按钮栏中可见的其他应用程序的数量是否会影响设备的内存使用量?

不,多任务栏只是最近应用程序的历史记录。其中一些可能仍在记忆中,而另一些则不在。你没有办法只看它就知道。

当内存不足时,iOS 将首先终止最需要内存的后台应用程序。如果您的应用程序在短时间内分配了大量内存,iOS 可能无法足够快地回收内存并立即终止您的应用程序。

您所能做的就是尽可能减少占用空间,并且尽量不要一次性分配大量缓冲区。

于 2013-03-22T15:04:39.190 回答
0

是的,我认为打开的应用程序的数量会影响您的应用程序接收内存警告的方式。关闭所有在后台运行的应用程序或重新启动设备可以减少发送到您的应用程序的内存警告消息(您可以使用仪器看到此效果)。

建议:
当您收到内存警告时,请尝试执行以下操作:
- 停止计时器和其他周期性任务。
- 停止任何正在运行的元数据查询。
- 不要启动任何新任务。
- 暂停电影播放(通过 AirPlay 播放时除外)。
- 如果您的应用是游戏,则进入暂停状态。
- 降低 OpenGL ES 帧速率。
- 暂停执行非关键代码的任何调度队列或操作队列。(您可以在不活动时继续处理网络请求和其他对时间敏感的后台任务。)

于 2013-03-22T14:58:33.077 回答
0

只是一个简短的说明。我发现打开其他应用程序确实会影响实际内存分配。使用“活动监视器”分析应用程序可以让您查看当前在内存中加载了哪些应用程序以及它们使用了多少。假设设备有 512mb,你有 512 - (什么是开放的)可以使用,iOS 可能会杀死一些应用程序来为你的应用程序释放内存。

于 2013-04-04T22:15:30.333 回答