Приложение имеет очень высокое использование памяти при первом запуске, но уменьшается до 1/10, если оно выходит из фонового состояния - PullRequest
0 голосов
/ 03 марта 2020

У меня проблема с управлением памятью в моем приложении. Проблема, с которой я сталкиваюсь, заключается в том, что при запуске приложения даже на домашнем экране использование памяти составляет почти 240 МБ, это включает в себя фоновое изображение, 3-4 изображения баннера и несколько других изображений + их данные в массивах. This is the First Screen

I checked for memory leaks and found 640bytes of memory leak having no info about it whatsoever.

But on pressing the home button, the app goes to background state with a memory usage of 8mb (which is normal) This is the Second Screen

But on coming back to the app, app only uses 22mb. This is the Second Screen

It never goes beyond 84mb even while using google-maps inside the app after this point. But if i tried opening that page with google maps, my usage would hit 300mb.

This is the memory usage graph enter image description here Я проверил возможные утечки памяти и обнаружил утечки памяти менее 2 КБ.

Может кто-нибудь, пожалуйста, подскажите мне об этом? Можно ли заставить приложение использовать только 22 МБ с самого начала? И почему при первом запуске используется огромное количество памяти, а после этого очень и очень мало? Это из-за наличия изображений на главном экране?

С уважением.

Ответы [ 2 ]

1 голос
/ 03 марта 2020

Поскольку ваше приложение потребляет слишком много памяти при запуске, кажется, что некоторые загруженные функции или данные работают при запуске приложения.

Хороший способ проверить ваш код:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?)

И код внутри вашего RootViewController.

0 голосов
/ 03 марта 2020
  1. Вы можете использовать Xcode-> Открыть Инструменты разработчика-> Инструменты-> Распределение, чтобы увидеть, что потребляет память в вашем приложении

  2. Другой вариант - используйте график памяти, чтобы увидеть текущие распределения и найти классы / структуры / данные, которые не были выпущены. Я нашел это очень полезным для нахождения сильных опорных циклов.

enter image description here

enter image description here

...