0

在收到许多内存警告后,我的应用程序不断崩溃。它有将近三万行代码,因此很难跟踪问题。我已经通过仪器运行它,并且在某些阶段有高达 30MB 的实时字节,据我所知,这应该不是太大的问题。内存泄漏极少,因此它们不会成为问题。该应用程序在长时间播放后往往会崩溃。仪器中没有任何东西可以帮助我追踪我不断收到的记忆警告的来源。有没有其他可能的方法来做到这一点?非常重要的是,这不会因为明显的原因而发生。任何帮助是极大的赞赏。

4

1 回答 1

0

实际上,根据我的经验,30MB 的活动字节并不是那么少的内存。IMO,可以消耗大量内存,但只消耗很短的时间,然后回到更安全的内存占用水平(如果你想解决 iPad1 应该在 10 到 15/20 MB 之间)。

我认为这是“废弃内存”的情况,即分配的内存,虽然它可以被释放,但永远不会(或为时已晚)。

查看这篇文章以了解快照内存分析,这可能对您的情况有所帮助。

当然,您的应用也有可能确实需要那么多内存(例如,因为它处理的一些大型资源),在这种情况下,前进的道路将试图减少所需的内存(这在很大程度上取决于您的应用程序管理的数据。如果它是一个游戏,例如,您可以使用 RGB565 格式而不是 RGBA8888 来保存您的作品)。

此外,如果 Instruments 允许您确定一定数量的内存消耗上升的情况,您可以处理这些情况以消除所有泄漏,或删除废弃的内存,或优化您的应用程序内存消耗要求。

于 2012-10-13T07:05:07.823 回答