【发布时间】:2018-09-06 04:46:20
【问题描述】:
我正在做一个项目,我需要 ViewController 来显示 Google Map 以指示属性的位置以及许多其他对象(如表格视图和集合视图)以在同一视图控制器上显示 JSON 数据。
问题:这个 ViewController 占用了大约 72 MB 的内存,当我调试代码以检查它占用大量内存的原因时,我观察到谷歌地图就是原因。如果我删除了谷歌地图,那么它只占用了 15 MB 的空间,但是,我创建了其他视图控制器,其中我只使用了 UIView 并给它输入 GMSMapView 类型,当我运行代码时它占用了接近 70 MB 的内存。
这是谷歌地图的正常行为吗?因为我还没有编写任何代码,只是将 GMSMapView 类型分配给 UIView 并且占用了大量内存。
我需要一个解决方案来减少这个内存问题。任何人都可以建议我们如何在谷歌地图的情况下做到这一点?
请注意:我没有为 Google MapView 编写任何代码,只是将 GMSMapView 类型分配给 UIView 并且内存跳转到接近 70 MB 及以上。
【问题讨论】:
-
让谷歌地图出口变弱
-
@SarabjitSingh 它已经很弱了。
-
“刚刚将 GMSMapView 类型分配给 UIView 并且内存跳转到接近 70 MB 及以上” - 无法确认您对此的体验,请尝试查找您可能在哪里实例化它。我有几个视图和 xib 这样做,在实例化之前不会影响内存。但是,一旦实例化 1,内存影响大约为 50MB,其中 20MB 永远不会消失,即使所有 GMSMapViews 都已解除分配。这些 20MB 是“缓存/内部”的东西,Google SDK 只是为了“以防万一”而保存在内存中。已作为错误报告给 Google iOS Map SDK 问题跟踪器。您可以为我的问题加注星标,以将其优先级提高到 Google :)。
标签: swift google-maps memory google-maps-sdk-ios gmsmapview