我最近调整了我的应用程序以提高内存效率,并在 iOS5 上遇到了一个奇怪的内存问题。请注意,我的应用程序没有打开自动引用计数。首先,我将实时内存从 15Mb 降低到 10Mb,它在任何 iOS6 设备和 iOS6 模拟器上都运行良好。当我在 iOS5(iPad 或模拟器)上运行经过调整的应用程序时,它在启动时会在一秒钟内达到 >100Mb 的峰值,并且通常会终止。激增的内存纯粹是在 iOS 代码中发生的。
我附上了两个仪器屏幕截图——第一个显示尖峰,第二个显示导致它的 malloc 调用——注意右侧的堆栈跟踪。所有这些大型 malloc 调用都在代码的同一点。
我不知道是什么原因造成的。我已经阅读了几篇关于 Core Graphics 泄漏的帖子,堆栈跟踪显示了这一点。对于正在发生的事情,我最好的猜测是,以某种方式使应用程序更高效的更改触发了 Core Graphics 中的某些东西,使其想要使用(并泄漏)更多内存,但仅限于 iOS5。
任何关于可能是什么原因以及如何解决它的想法或见解将不胜感激。