我的应用程序在收到许多内存警告后不断崩溃。它差不多有三万行代码,因此跟踪问题并不容易。我已经通过仪器运行它,并且在某些阶段有高达30MB的实时字节,据我所知,这应该不是太大的问题。内存泄漏非常小,因此它们不是问题所在。该应用程序在长时间播放后往往会崩溃。仪器中的任何内容都没有帮助我跟踪我经常收到的内存警告的来源。有没有其他可能的方法来做到这一点?非常重要的是,出于显而易见的原因,这不会发生。非常感谢任何帮助。
答案 0 :(得分:0)
实际上,根据我的经验,30MB的实时字节并不是那么小的内存。 IMO,可以消耗大量内存,但只能用很短的时间,然后回到更安全的内存占用水平(如果你想解决iPad1应该在10到15/20 MB之间)。 / p>
我认为这是“废弃的记忆”的情况,即分配的记忆,虽然它可以被释放,但从来没有(或太迟)。
查看this post以了解快照内存分析,这可能对您的情况有所帮助。
当然,你的应用确实也有可能需要那么多内存(例如,因为它处理了一些大的资源),在这种情况下,前进的路径将试图减少所需的内存内存(这在很大程度上取决于您的应用管理的数据类型。如果是游戏,例如,您可以使用RGB565格式而不是RGBA8888作为您的作品。)
此外,如果Instruments允许您确定内存消耗增加的特定数量的情况,您可以使用它来消除所有泄漏,或删除废弃的内存,或优化您的应用程序内存消耗要求。 / p>