我正在创建一个iPad应用程序,并且看到了一些奇怪的行为。我正在立方体表面上加载纹理图像,每个纹理的大小为1024x1024px。

当我在应用程序上工作一段时间后,在调试时会收到内存警告,并且应用程序崩溃。我工作的时间越长,调试会话运行的次数就越多,并且在最坏的情况下每次都会触发内存警告。

当我关闭然后打开iPad应用程序时,它运行正常,一切都很好,并且没有错误(一段时间内)。

当应用在调试时崩溃时,是否有可能无法释放其内存? iPad多次崩溃后,以前的泄漏有太多垃圾,无法正常运行吗?

最佳答案

您所解释的内容似乎完全暗示您的建议,即崩溃后,内存没有完全恢复,至少不是立即恢复。但是,可能会有不同的解释,即:监督内存使用并发送内存警告的哨兵无法在应用崩溃后(至少不是立即)为应用清除其状态;因此,当您启动新的调试会话时,它仍会使用旧的信息来确定应用程序正在使用的内存量,依此类推。

不了解iOS的内部结构很困难,但是要澄清一点,我建议您安装许多免费应用程序之一,该应用程序会为您提供设备状态和可用内存量,因此在崩溃后,您将知道有多少内存实际上剩余了。

在观察中引入时间变量,或者在重新启动您的应用程序之前先尝试启动其他应用程序,或者先启动您的应用程序然后将其终止,这也可能很有用...

关于ios - 经过数小时的调试后的iOs内存警告,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6842907/

10-11 23:25
查看更多