Рубрики
Без рубрики

Нахождение утечек памяти React-National App (iOS)

Jigeesh Kakadiya Поиск утечек памяти React – Nate Nate App (iOS) Проблема: наше нативное приложение работало хорошо на всех устройствах, и, кроме iPhone 6, что привело к сбою. После профилирования высокого уровня мы обнаружили, что его проблема памяти. При использовании некоторых тяжелых функций в памяти приложения

Автор оригинала: FreeCodeCamp Community Member.

Джинш Какадия

Проблема: Наше приложение React-National работало хорошо на всех устройствах, и, кроме iPhone 6, в результате чего он привел к сбою. После профилирования высокого уровня мы обнаружили, что его проблема памяти. При использовании некоторых тяжелых функций в памяти приложения снимали до 600+ МБ. А поскольку iPhone 6 имеет 1 ГБ оперативной памяти, iPhone автоматически убивает приложение.

Решение: Это то, что я сделал, чтобы уменьшить приложение общее использование памяти с 600 МБ до 60 МБ.

  1. При профилировании утечек памяти нам нужно убедиться, что приложение построено с помощью схемы выпуска. Поскольку DEV Build включает в себя ведение журнала/предупреждения, функции горячей перезагрузки, которые им не нужны при проверке утечек. Вот как вы можете изменить релиз сборки с Xcode Отказ
  2. Начать отслеживание для утечек Перейти к Xcode → Продукт → Профиль (⌘ + I) Он будет всплыть шаблоны профилирования. Пожалуйста, выберите, какой требуется. Выберите Утечки и нажмите на Выберите Отказ

3. Это должно откройте профилировщик утечек на вашем экране. Затем вы можете нажать на «красную точку» на левом верхнем углу, который будет Перезапустите приложение в симуляторе И вы можете начать играть с приложением.

4. Это то, как он выглядит после выполнения некоторых каналов в операциях экрана и карусели. Я понял, когда я прыгаю в экран карусели и выбирал изображение из Carousel из 12 изображений, память снимает на каждое изображение. Результатом ниже показывает нам память, предпринимаемая «в памяти» объекта изображения.

5. Найти причину. Мы использовали React-Native-Fast-Image Пакет для кэширования изображений на этом экране и с момента реагирования не имеет «лучшего» способа кэшированных изображений, которые мы закончили использовать React-Native-Fast-Image Отказ Поэтому я решил удалить этот замечательный пакет из моего приложения, и результат был шокирующим. Это то, что результат выглядит так, чтобы после удаления его.

PS: просто, так что вы знаете, мы закончили использовать React-National-Cached-Image , который не хранит изображение в памяти.

Если вы строете что-то с реактивным и нуждаетесь в помощи. Пожалуйста, дай мне знать.