Msdevcon.ru#msdevcon. ЛУЧШИЕ ПРАКТИКИ ОБЕСПЕЧЕНИЯ ПРОИЗВОДИТЕЛЬНОСТИ WINDOWS STORE ПРИЛОЖЕНИЙ Станислав Павлов Microsoft.

Презентация:



Advertisements
Похожие презентации
Msdevcon.ru#msdevcon. ПРОФИЛИРОВАНИЕ WINDOWS STORE ПРИЛОЖЕНИЙ Филипп Панфилов Mail.Ru Group.
Advertisements

Microsoft TechDays Павел Маслов MVP, Directory Services.
Microsoft TechDays Людмила Шайкина Quarta Consulting
Microsoft TechDays Евгений Марченков Эксперт по технологиям разработки ПО Microsoft.
Microsoft TechDays Николай Миляев консультант Microsoft.
Microsoft TechDays Заграничнов Александр Microsoft.
Новые продукты Microsoft для повышения качества и эффективности образования Амит Миталь Старший вице-президент Microsoft по развитию социальных проектов.
Msdevcon.ru#msdevcon. OPEN SOURCE РЕШЕНИЯ В ОБЛАКЕ WINDOWS AZURE Воркачёв Владимир.
Microsoft TechDays Евгений Марченков Эксперт по технологиям разработки ПО Microsoft.
Microsoft TechDays Никоноров Евгений разработчик EPAM Systems.
DevCon12 // msdevcon.ru #msdevcon мая, 2012 г. Microsoft.
Microsoft TechDays Леонид Шапиро MCT ЦКО «Специалист»
На примере одного дня из жизни руководителя. Поездка в Милан.
Валерия Казбан, менежер по работе с государственным сектором, Майкрософт Украина Опыт внедрения концепции е- управления Майкрософт Украина: локальные особенности.
Microsoft TechDays Константин Трещев MCITP: Enterprise Administrator
Msdevcon.ru#msdevcon. Работа с асинхронными операциями в Win RT Иван Бодягин ABBYY.
Microsoft TechDays Золотовицкий Аркадий Директор по производству «Интеллектуальные системы»
Microsoft TechDays Марат Бакиров Эксперт по разработке ПО Microsoft
Вычислительные ресурсы и приложения доступные через Интернет в виде сервисов Облачные вычисления.
Ромуальд Здебский Microsoft.
Транксрипт:

msdevcon.ru#msdevcon

ЛУЧШИЕ ПРАКТИКИ ОБЕСПЕЧЕНИЯ ПРОИЗВОДИТЕЛЬНОСТИ WINDOWS STORE ПРИЛОЖЕНИЙ Станислав Павлов Microsoft

Производительность Визуальная как пользователь ощущает скорость работы приложения Реальная формальные параметры: CPU, память, диск, сеть, батарейка

Визуальная производительность Планирование UI и UX Асинхронное программирование перестать, наконец, блокировать UI поток Анимация процесса ожидания

Реальная производительность Правильно построенный процесс Понимание архитектуры работы и выбранного технологического стека Использование подходящего инструментария

Зачем это нужно?

Не будут пользоваться приложением Которое медленно запускается Которое медленно реагирует на действия пользователя Которое показывает анимацию рывками Которое воспроизводит мультимедиа рывками Которое тратит батарейку

Правильно построенный процесс Учёт производительности на каждом этапе разработки планирование, дизайн, разработка, тестирование Чётко поставленные цели по измеряемым параметрам Итеративное улучшение производительности Тестирование приложений на целевых устройствах Исследование, исправление, измерение

Технологические варианты XAML и C#/C++/VB.NET HTML и JS DirectX и С++

XAML архитектура Полностью переписана на С++ поверх DirectX Мульти-поточная архитектура с улучшенной поддержкой многоядерности потоки UI, Compositor, Worker

XAML инструментарий DebugSettings EnableFrameRateCounter IsOverdrawHeatMapEnabled Visual Studio Performance Analyzer xperf

HTML архитектура Используется движок Internet Explorer WWA (Windows Web Applications) Ограничения по безопасности Взаимодействие с платформой (WinRT) WinJS

HTML инструментарий Visual Studio Performance Analyzer Visual Studio JavaScript Profiler Memory UI Responsiveness HTML5 Performance Analyzer xpref

DirectX архитектура Все Windows Store приложения используют DirectX для рендеринга WWA и XAML оптимизированы для использования Dirext2D и Direct3D 11.1 Direct2D и эффекты Direct2D полностью используют возможности Direct3D 11.1

DirectX инструментарий Встроенный в Visual Studio Performance Analyzer Graphics Diagnostics GPUView xpref

А теперь подробнее о XAML

Три потока XAML UI пользовательский код, парсер, размещение (layout), рендеринг Compositor независимая анимация, построение сцены, взаимодействие с графической подсистемой Worker декодирование картинок, фоновая работа, асинхронный ввод/вывод …

XAML операции разбиты на фреймы UI работает сравнительно медленно размещает «dirty» элементы парсит XAML для всех создаваемых объектов рендерит видимые объекты в примитивы Поток рендеринга работает на 60 FPS обновляет значений анимации вызывает команды отрисовки для примитивов реализует независимую анимацию

Запуск XAML приложения UI поток парсит размещает рендерит запускает код приложения

Возможные оптимизации Уменьшить размер словарей ресурсов XAML Уменьшить количество элементов Использовать виртуализацию UI Асинхронные запросы к веб-ресурсам

На что смотреть Microsoft-Windows-Immersive-Shell PerfTracker_SplashScreen_AppShown Microsoft-Windows-XAML ParseXAML Frame Layout MeasureElement

Анимация Зависимые Дерево анимаций создаёт UI поток Каждый кадр анимации генерируется в потоке UI и отсылается отдельно в Comositor Compositor рендерит сцену Независимые Дерево анимаций создаёт UI поток Compositor делает всё остальное

Возможные оптимизации Использовать независимую анимацию Останавливать или удалять анимацию, если она больше не нужна или не видна Использовать RenderTransforms вместо ширины, высоты или других свойств связанных с отображением объекта Подумайте (2 раза) перед тем как использовать бесконечную анимацию

Что ещё можно оптимизировать? Масштабирование не двигайте объекты по событиям Pointers используйте ScrollView не занимайте UI поток используйте меньше элементов используйте placeholders

Что ещё можно оптимизировать? Медиа используйте полноэкранный режим без оверлея напрямую устанавливайте размеры элемента MediaElement в Windows.Current.Bounds освобождайте медиапотоки размещайте другие элементы рядом, а не поверх видео не используйте анимацию во время проигрывания видео используйте MediaElement.PosterSource

Что ещё можно оптимизировать? Память используйте виртуализацию уменьшайте количество элементов всегда используйте изображения нужного размера

msdevcon.ru#msdevcon performance performance performance

Контакты Стас Павлов Microsoft & blogs.msdn.com/stasus

© 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.