1

我在我的应用程序中注意到,如果我的手机长时间没有关机,didReceiveMemoryWarning 的调用速度会更快。我的应用程序可以访问的内存池似乎随着时间的推移而缩小。

有没有其他人注意到这一点,是否有解释?有没有我可以采取的措施来防止这种情况发生?

当我使用大量内存拍摄和处理图片时,我注意到这种情况发生了。关闭电源并重新启动手机会有所帮助。我的应用程序可以访问的内存是否可能正在缩小,或者现有内存是否碎片化并且重新启动会对现有内存进行碎片整理?

对此问题的任何解释或帮助都会很棒。谢谢。

4

3 回答 3

1

是的,不幸的是,这是众所周知的行为。随着操作系统的运行,杂乱无章的发展,最终需要重新启动才能清除。这就是为什么应用商店中的许多应用在玩游戏之前都要求重新启动的原因。

于 2010-01-25T16:46:48.327 回答
1

旧版本的 iPod 守护程序 mediaserverd 曾经泄漏。

这导致了您描述的行为。

如果一个系统服务可以泄漏,那么其他系统服务也可以。

于 2010-01-25T16:47:28.180 回答
0

仅仅因为我们没有多任务处理我们的应用程序并不意味着 iPhone 正在执行多任务处理。

在 Safari 中打开的网页会保留在内存中,直到操作系统向 Safari 发送与您收到的相同的内存警告。邮件可能会在您的应用程序运行时开始工作并且需要更多内存。iPod 应用程序也为自己保留了相当多的内存。

如果您在应用程序收到内存不足警告时使用管理器查看 iPhone 的控制台,您可能会看到一些内置应用程序也收到内存警告并终止某些事情以释放内存。这很有趣。

于 2010-01-25T21:23:56.703 回答