Как я могу профилировать использование памяти в фоновом агенте 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