Issue
https://github.com/nativescript-vue/nativescript-vue/issues/492
краткий обзор
Использование пользовательской стратегии маршрутизации вкладок в Nativescript-Vue Я обнаружил, что у моего приложения была утечка памяти.Стратегия маршрутизации опирается на один всеобъемлющий компонент, который будет переключать активные компоненты с помощью оператора v-if.Когда пользователь переходит на новую страницу, оператор v-if будет скрывать (и уничтожать) старую страницу и показывать (и монтировать) новую страницу.Теоретически старая страница должна быть уничтожена, а память собрана сборщиком мусора;однако на практике память накапливается и, кажется, никогда не освобождается из приложения, даже при вызове сборщика мусора вручную.
тестирование и воспроизведение
Эта проблема была проверена и обнаружена в реальнойУстройство ios (похоже, у эмулятора нет проблем с памятью, но я читал, что это не похоже на реальное устройство).Проблема github, представленная выше, может предоставить некоторые дополнительные детали, а репозиторий, связанный ниже, демонстрирует минимальное воспроизведение, вызывающее утечку памяти.
Воспроизведение этой ошибки можно найти по адресу https://github.com/geodav-tech/nativescript-vue-memory-leak.
После создания проекта, запустите его через xcode, посмотрите профиль памяти и перейдите от списка состояний к списку примеров, который генерируется при подключении.скриншоты, также предоставленные в readme
Я ожидаю, что память скрытых компонентов будет очищена после их уничтожения, и в настоящее время, даже если вы оставляете приложение открытым в течение нескольких минут, сборщик мусора не снижает нагрузку.
вопрос (редактировать)
Есть ли у кого-нибудь какие-либо соображения относительно памяти, удерживаемой приложением?Есть ли лучший способ реализовать стратегию маршрутизации, подобную этой, которая не вызывала бы утечку памяти или что-то плохое в реализации программы?