Перед отправкой 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
Добавить комментарий