Первая помощь при утечке памяти в вашем приложении

Перед отправкой Windows 8 приложения в Windows Store не помешает проверка на пробелы в работе с памятью. Эта статья о выявлении таких проблем на ранней стадии развития. Я покажу вам супер легкий трюк и вы сможете сделать это без профилирования. Решение состоит в том, что бы вложить TextBlock на каждую страницу, который покажет сколько памяти используется на данный момент.

Как это сделать на вашей странице?

  • Поместите данный блок на вашей странице
    <TextBlock TextWrapping="Wrap" x:Name="mem" FontSize="21.333"/>
  • И добавьте следующий код в обработчик события OnNavigatedTo:
    mem.Text = "Memory in use: " + Math.Round(GC.GetTotalMemory(true) / 1000000.0, 2) + "mb";

Теперь посмотрим, что будет, если произойдет навигация между двумя страницами. Обратите внимание на текст “MEMORY USE” в левом верхнем углу.

Очевидно, что у  моего приложения имеется большая утечка памяти. Если с каждой навигацией потребление памяти увеличивается на 1МБ — это нормально, т.к. предыдущие страницы не удаляются сборщиком мусора.

Ссылка на источник: First aid for detecting memory leaks in a Windows Store App

 

 

 

 

 

Advertisements
Tagged with: , , , ,
Опубликовано в Development, Windows 8.1

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: