Тестирование и анализ приложений
Анализ производительности приложений
Анализ производительности приложений доступен и при запуске их в эмуляторе, однако, реально оценить производительность можно лишь на устройстве, причем – в конфигурации выпуска (Release), так как запуск приложения в конфигурации отладки создаёт дополнительную нагрузку на систему.
Быстро оценить производительность приложения можно, воспользовавшись показателями, которые выводятся в правой части экрана, рис. 57.3.
Ниже, в порядке представления слева направо, перечислены показатели и их описание. Если показатели в данном списке выделяются красным цветом, это сигнализирует о том, что они выше (или ниже) некоторых пороговых значений, на них стоит обратить внимание в первую очередь.
- 055 – Composition Thread FPS – скорость, с которой обновляется экран. Чем ближе этот показатель к 60 кадрам в секунду – тем лучше. Если он падает ниже 30 – это означает недостаточную производительность приложения.
- 055 – User Interface Thread FPS – скорость, с которой обновляется пользовательский интерфейс, этот показатель не должен падать ниже 20 кадров в секунду.
- 005453 – Texture Memory Usage – использование системной и видеопамяти
- 002 – Surface Counter – счётчик поверхностей, которые явно передаются графическому ускорителю для обработки
- 001 – Intermediate Surface Counter – счётчик полного количества поверхностей, сгенерированных в результате кэширования поверхностей.
- 00.6020 – Screen Fill Rate Counter – количество пикселей, которые выводятся каждый кадр. 1 обозначает полную перерисовку всего экрана в 480х800 пикселей. Рекомендуется, чтобы данный показатель не превышал 2,5.
Для более глубокого анализа приложений используется специальный инструментарий, вызвать который можно, воспользовавшись командой Отладка > Начать анализ приложения Windows Phone, рис. 57.4.
Перед началом анализа нужно подготовить приложение для запуска на устройстве. Запуск и остановку приложения следует выполнять с помощью ссылок, которые приведены на экране средства анализа приложения. После запуска нужно поработать с приложением так, как с ним будет работать пользователь, после чего изучить данные анализа, при необходимости внести в приложение изменения и повторить анализа
Здесь доступны три варианта анализа:
-
Анализ производительности и качества приложения. Выбор данного пункта позволяет проанализировать следующие параметры приложения, по каждому из которых выводятся измеренные показатели и комментарии:
- Время запуска
- Скорость реагирования
- Общий объем отправленных данных
- Общий объем загруженных данных
- Оставшийся заряд батареи
- Максимальное использование памяти
- Среднее использование памяти
- Выполнение (оценка производительности приложения с использованием расширенных визуальных средств и профилирования кода). Позволяет оценить производительность приложения, в частности, здесь можно получить сведения о внешних событиях, частоте кадров, загрузке центрального процессора, скорости реагирования приложения, о расходе заряда батарей, основные сведения об использовании памяти, о событиях "сборки мусора". Эти сведения представлены в графическом виде, выделив участок графика можно посмотреть подробности.
- Память (оценка выделения памяти и использования текстур). Используется для более глубокого, чем в предыдущем варианте, анализа использования памяти.
Анализировать приложение с помощью этих средств следует не только на финальной стадии разработки, но и в процессе работы над приложением. Например, это позволяет сразу же, после внедрения в приложение какого-либо нового механизма (например, создания страницы, на которой размещается большой список элементов, загружаемых из Интернета и т.д.) оценить его воздействие на объем памяти, требующийся приложению, на его производительность, скорость загрузки, энергопотребление. Периодический анализ приложения помогает выявлять проблемы с производительностью на ранних стадиях и сразу же принимать меры по их решению.
Подробнее об анализе производительности приложения, о типичных проблемах, о способах их решения, можно узнать в следующих материалах:
- "Ускорьте появление своих приложений Windows Phone в Marketplace", http://msdn.microsoft.com/ru-ru/magazine/hh781024.aspx
- "App performance considerations for Windows Phone" ("Производительность приложений для Windows Phone", http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff967560%28v=vs.105%29.aspx
- "App profiling for Windows Phone" ("Профилирование приложений для Windows Phone"), http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj215908%28v=vs.105%29.aspx
- "Network Monitoring for Windows Phone Apps" ("Мониторинг сетевой активности приложений для Windows Phone"), http://blogs.windows.com/windows_phone/b/wpdev/archive/2012/12/20/network-monitoring-for-windows-phone-apps.aspx
- "Optimizing Battery Consumption of Windows Phone Applications" ("Оптимизация энергопотребления приложений для Windows Phone"), http://blogs.windows.com/windows_phone/b/wpdev/archive/2013/01/17/optimizing-battery-consumption-of-windows-phone-applications.aspx
- "Building High Performance Windows Phone Apps" ("Создание высокопроизводительных приложений для Windows Phone"), http://blogs.windows.com/windows_phone/b/wpdev/archive/2013/01/25/building-high-performance-windows-phone-apps.aspx
- "App monitoring for Windows Phone" ("Мониторинг приложений для Windows Phone"), http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj215907%28v=vs.105%29.aspx
- "How to identify and fix common performance issues using Windows Phone Application Analysis" ("Как найти и устранить типичные проблемы с производительностью, используя средство анализа приложений для Windows Phone"), http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202932%28v=vs.105%29.aspx
- "Windows Phone Application Analysis" ("Анализ приложений для Windows Phone"), http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202934%28v=vs.105%29.aspx
Выводы
Методология модульного тестирования позволяет автоматизировать тестирование кода, упростить внесение в код изменений с контролем правильности его работы. При разработке приложений для Windows Phone следует обращать внимание на их производительность, на объем потребляемых системных ресурсов, и, в ходе разработки, а так же при завершении разработки, контролировать эти параметры, при необходимости оптимизируя приложение.
Задание
Произведите всесторонний анализ разрабатываемого вами приложения с использованием средств анализа приложений, присутствующих в Visual Studio 2012. При обнаружении проблем в производительности и в потреблении системных ресурсов, оптимизируйте приложение, воспользовавшись рекомендациями из материалов, ссылки на которые можно найти в тексте лабораторной работы. Подготовьте отчёт со сравнением показателей приложения до оптимизации и после неё.
Дополнительные материалы
К данной лекции подготовлено видеоприложение и демонстрационный программный проект.