5

我希望确保我的应用程序不会在仍然相当资源受限的设备上消耗太多内存。几天前,我使用Instruments来确定我的应用程序使用了多少内存,而Live Bytes大约有 4-8 兆字节。今天我再次运行 Instruments,Live Bytes 增加了大约 30-35 兆字节。我不相信我在这两次之间对我的代码进行了任何重大更改。

我的应用程序使用MKMapView带有自定义图块覆盖的 。我推迟更新 XCode 很长一段时间,所以我怀疑差异可能是几天前我的 iOS 模拟器仍在使用 Google 而不是 Apple 地图,直到我升级 XCode。

作为一个小测试,我创建了一个新的测试应用程序,它只有一个MKMapView,没有别的,并在其上运行 Instruments。这个应用程序的 Live Bytes 通常为50-90兆字节,即使它没有任何自定义代码 - 我只是将 MKMapView 拖放到上面。

我不知道这是否代表 Apple 有意让新地图使用这么多内存。也许地图图块在应用程序之间共享,这很好。不管怎样,考虑到大多数早期的建议大约是 5-20MB,而 Apple 的 MKMapView 本身消耗 50-90MB,因此想出一个我可以安全使用多少 Live Bytes 的合理近似值变得复杂了。

是否有另一个有用的指标可以让 Live Bytes 现在没有任何用处?

编辑:对于其他人来说,这是一个合法的内存管理问题并导致应用程序崩溃:iOS6 MKMapView 使用大量内存,导致应用程序崩溃,还有其他人注意到这一点吗?

4

0 回答 0