Мое приложение использует GMSMapView в подвид, и использование памяти выглядит следующим образом:GMSMapView: как управлять памятью?
- 1.25 МБ до доступа к карте;
- 21,5 МБ после первого доступа к карте;
- 30 MB (а иногда пики выше 30) после того, как масштабирование и панорамирование не
нет утечек, насколько я могу сказать с инструментами. Проблема в том, что я получаю предупреждения о памяти и часто отключается при отключении приложений. Очевидно, что GoogleMaps использует львиную долю в памяти приложения. Как я могу отпустить некоторые из них в didReceiveMemoryWarning()?
Возможно ли иметь Карты Google в приложении и управлять его использованием памяти, по крайней мере, достаточно, чтобы предотвратить его выключение из памяти?
Это GoogleMaps-iOS-1.3.0.
Update:
Мои рисунки памяти были далеко (использовал Отчисления инструмента вместо Activity Monitor). Ниже приведены правильные значения:
- 8.8 MB перед доступом карты
- 57 MB после первой доступа к карте
- 65 MB, с шипами в районе 80 МБ. после масштабирования и панорамирования
Это явно находится в диапазоне «проблем» для ОЗУ 256 МБ (например, iPod Touch 4G) и объясняет предупреждения о памяти и случайные удары.
Неужели кто-то успешно работает с Google Maps в приложении на устройстве с 256 МБ?
Попробуйте вызвать stopRendering, когда карта отсутствует на экране. Это освободит ресурсы памяти. – Felix
Но что делать, когда пользователь прокручивает и масштабирует, и начинают появляться предупреждения (а иногда и выключение)? I.e., нет возможности прекратить рендеринг. Как правило, приложение просто должно позволить GMSMap привести его в банкротство памяти? :-) – user2444264
@ user2444264 У вас есть решение, я столкнулся с той же проблемой –