在基于地图的 iOS 应用程序中管理内存

Shi*_*ami 5 google-maps memory-management ios automatic-ref-counting google-maps-sdk-ios

我正在开发一个基于企业地图的应用程序,它需要显示从大量劳动力收集的信息,并将其全部显示在每个员工的 iPad 上。因此,地图上的标记数量会迅速增加(数以千计)。此外,每个标记都将由一个 NSManagedObject 子类支持,该子类在标记存在时保存在内存中。

我正在使用 Google Maps iOS SDK,问题是,即使没有任何标记,只是平移和缩放会导致内存使用量大幅增加。启动时应用程序的脏内存大小为 100MB(使用分配工具)。一点点平移和缩放很快使它最多可以拍摄到 300,问题是当我停止平移和缩放时,内存永远不会下降。类似地,如果我打开了很多标记并删除它们,同样不会降低内存(当我删除标记时,我确保也不保留对任何对象的任何引用)。内存下降的唯一时间是我更改地图类型时。如果我在街景视图中平移/缩放很多,然后切换到卫星视图,脏内存会突然下降 50MB 以上。

所以我想知道是否有人在使用谷歌地图时有任何处理内存的技巧,或者关于谷歌地图如何管理/释放内存的任何信息?