Планирование производительности приложения
Успех достижения целей производительности зависит от того, насколько хорошо разработана стратегия производительности. Планирование является первым этапом разработки любого продукта. В этом разделе описывается несколько очень простых правил разработки хорошей стратегии производительности.
Условия скриптов
Сценарии помогают сосредоточиться на важных компонентах приложения. Сценарии обычно предоставляются пользователями, а также извлекаются из конкурентных продуктов. Всегда следует изучить заказчиков и узнать, чем на самом деле привлекает их ваш продукт и продукт ваших конкурентов. Реакция заказчиков может помочь определить основной скрипт приложения. Например, при разработке компонентов, которые будут использоваться при запуске, есть вероятность, что компонент будет вызываться только один раз при запуске приложения. Время запуска становится ключевым скриптом. Другим примером ключевого скрипта могла бы быть нужная частота кадров для последовательности анимации или максимальное рабочее множество, допускаемое приложением.
Определение целей
Цели помогают определить, насколько быстро или медленно выполняется приложение. Следует определить цели для всех скриптов. Все определенные цели производительности должны основываться на ожиданиях заказчиков. Возможно, будет трудно установить цели производительности на ранней стадии в цикле разработки приложения, когда по-прежнему остается много неразрешенных вопросов. Однако лучше задать начальную цель и изменить ее позже, чем не иметь цели вообще.
Понимание платформы
Всегда сохраняйте цикл измерений, исследований, улучшения и коррекции во время цикла разработки приложений. От начала до конца цикла разработки необходимо измерение производительности приложения в надежной, стабильной среде. Следует избегать изменений, вызванных внешними факторами. Например при тестировании производительности следует отключить антивирус или любое автоматическое обновление, например, сервера SMS, чтобы не повлиять на результаты проверки быстродействия. После измерения производительности приложения необходимо определить изменения, которые приведут к существенному усовершенствованию. После изменения приложения запустите цикл снова.
Настройка производительности в ходе итерационного процесса
Следует знать относительную стоимость всех используемых возможностей. Например, использование отражения в Microsoft .NET Framework, как правило, требует высокой производительности в терминах вычислительных ресурсов, поэтому его следует использовать осторожно. Это не означает, что нужно избегать использования отражения, следует всего лишь соблюдать осторожность при согласовании требований к производительности приложения с потребностями производительности используемых средств.
Построение богатой графики
Ключевым способом создания масштабируемого подхода для достижения высокой производительности приложения WPF является построение богатой и сложной графики. Для достижения целей скрипта всегда начинайте с использования ресурсов, требующих наименьшей производительности. После достижения этих целей, стройте богатую графику при помощи средств, требующих большей производительности, всегда помня цели скрипта. Помните, что WPF является очень богатой платформой, которая предоставляет очень богатые графические возможности. Бездумное использование средств, требующих высокой производительности, может отрицательно сказаться на общей производительности приложения.
Элементы управления WPF по своей сути расширяемы, позволяя выполнять настройки их внешнего вида в широком диапазоне без изменения поведения элементов управления. Используя преимущества стилей, шаблонов данных и шаблонов элементов управления, можно создавать и последовательно развивать настраиваемый user interface (UI), адаптирующийся к требованиям производительности.
См. также
Основные понятия
Улучшение производительности приложений WPF
Оптимизация производительности. Использование преимуществ аппаратного ускорения
Оптимизация производительности: разметка и разработка
Оптимизация производительности: двумерная графика и обработка изображений
Оптимизация производительности: поведение объекта
Оптимизация производительности: ресурсы приложения
Оптимизация производительности: отображение текста