Как я могу профилировать использование памяти в фоновом агенте wp7.1?

Я работаю над запланированным фоновым агентом для Mango (7.1)

Мне удалось сократить использование памяти с 10,5 МБ до 6,5 МБ с помощью методов ручной трассировки, основанных на DeviceStatus.ApplicationPeakMemoryUsage наряду с некоторыми умными догадками о том, что оптимизировать.

Тем не менее, теперь мне нужно опуститься ниже 6 МБ - и окончательные 0,5 МБ оказались неуловимыми.

Мне удалось запустить инструмент " Анализ производительности Windows Phone" в главном приложении, но, похоже, не могу найти способ заставить его работать с агентом.

Существуют ли какие-либо инструменты и / или методы, помогающие мне решить, что заполняет память моего агента? В идеале мне нужен способ исследовать все пространство памяти, включая код и данные, и в идеале он должен работать против сборки выпуска.

3 ответа

Решение

Как уже было сказано, отладчик добавит незначительные накладные расходы памяти. Итак, лучший способ, который я нашел, это:

  • Активируйте консоль эмулятора: http://nicksnettravels.builttoroam.com/post/2011/01/19/Windows-Phone-7-Console-Window-on-64-bit-machine.aspx

  • В стратегических точках вашего кода (например, в начале и в конце основных функций или после выделения большого объекта) отобразите потребление памяти:

    Console.WriteLine("Function {0}: {1}", "name of your function", DeviceExtendedProperties.GetValue("ApplicationCurrentMemoryUsage"));
    
  • Запустите приложение, не подключая отладчик (Ctrl + F5), расслабьтесь и наслаждайтесь

Помните, что если вы запускаете фоновый агент в режиме отладки, это добавляет около 2 МБ на объем памяти агента, так что вы можете быть в порядке.

Вероятно, вы могли бы еще использовать ApplicationPeakMemoryUsage и записывать детали памяти в файл в изолированном хранилище при непосредственном запуске приложения, а не из Visual Studio.

HTH - Руперт.

Вам может показаться интересным следующее сообщение в блоге, которое вы, возможно, уже видели, но оно описывает как добавление отладочной памяти, так и некоторые советы по уменьшению использования памяти.

http://www.pitorque.de/MisterGoodcat/post/Windows-Phone-Background-Agents-Pitfalls-(2-of-n).aspx

Другие вопросы по тегам