2015-06-29 4 views
4

Заметил, что при переходе на страницу более 200 раз с Frame.Navigate(Type) память для процесса приложения продолжает расти до огромной суммы. Страница начинает становиться вялой, когда процесс достигает 100 МБ, что составляет около 50 кликов.Управление памятью App Store

Из того, что я могу сказать, страница создается каждый раз, когда она перемещается (пострадает конструктор страницы). Несмотря на то, что эта страница довольно маленькая, приложение может вырасти до ~ 1 ГБ памяти.

Очевидно, что пользователь не будет перемещаться по той же странице 200 раз, но это приложение долговечно, и есть много страниц, поэтому я действительно беспокоюсь об этой проблеме.

Существуют ли какие-либо методы предотвращения такого роста памяти?

+0

Вам нужно будет больше описать, что содержат ваши страницы. На мой взгляд, это довольно широкий вопрос - вот что я нашел в своем приложении: [обработчики событий, висящие на объектах] (http://stackoverflow.com/questions/1089309/weak-events-in-net), [неправильное использование ObserveableCollection] (http://neverindoubtnet.blogspot.com/2010/08/observablecollection-datagrid-memory.html), даже [утечка памяти стороннего производителя] (https://github.com/) AdRotator/AdrotatorV2/вопросы/53). –

ответ

0

Пожалуйста, убедитесь, что вы использовали много «Использование» заявления в коде и также использовать Page_Unloaded или OnNavigatedFrom(NavigationEventArgs e) события, чтобы очистить все тяжелые предметы и другие ресурсы, которые вы используете на своих страницах.

Или, если вы можете конвертировать ваше приложение в модель MVVM, страница обычно кэширует себя и потребляет меньше памяти.