Автор оригинала: FreeCodeCamp Community Member.
Джинш Какадия
Проблема: Наше приложение React-National работало хорошо на всех устройствах, и, кроме iPhone 6, в результате чего он привел к сбою. После профилирования высокого уровня мы обнаружили, что его проблема памяти. При использовании некоторых тяжелых функций в памяти приложения снимали до 600+ МБ. А поскольку iPhone 6 имеет 1 ГБ оперативной памяти, iPhone автоматически убивает приложение.
Решение: Это то, что я сделал, чтобы уменьшить приложение общее использование памяти с 600 МБ до 60 МБ.
- При профилировании утечек памяти нам нужно убедиться, что приложение построено с помощью схемы выпуска. Поскольку DEV Build включает в себя ведение журнала/предупреждения, функции горячей перезагрузки, которые им не нужны при проверке утечек. Вот как вы можете изменить релиз сборки с Xcode Отказ
- Начать отслеживание для утечек Перейти к Xcode → Продукт → Профиль (⌘ + I) Он будет всплыть шаблоны профилирования. Пожалуйста, выберите, какой требуется. Выберите
Утечкии нажмите наВыберитеОтказ
3. Это должно откройте профилировщик утечек на вашем экране. Затем вы можете нажать на «красную точку» на левом верхнем углу, который будет Перезапустите приложение в симуляторе И вы можете начать играть с приложением.
4. Это то, как он выглядит после выполнения некоторых каналов в операциях экрана и карусели. Я понял, когда я прыгаю в экран карусели и выбирал изображение из Carousel из 12 изображений, память снимает на каждое изображение. Результатом ниже показывает нам память, предпринимаемая «в памяти» объекта изображения.
5. Найти причину. Мы использовали React-Native-Fast-Image Пакет для кэширования изображений на этом экране и с момента реагирования не имеет «лучшего» способа кэшированных изображений, которые мы закончили использовать React-Native-Fast-Image Отказ Поэтому я решил удалить этот замечательный пакет из моего приложения, и результат был шокирующим. Это то, что результат выглядит так, чтобы после удаления его.
PS: просто, так что вы знаете, мы закончили использовать React-National-Cached-Image , который не хранит изображение в памяти.
Если вы строете что-то с реактивным и нуждаетесь в помощи. Пожалуйста, дай мне знать.