Поделиться через


Планирование производительности приложения

Успешное достижение целевых показателей производительности зависит от того, насколько хорошо разработана стратегия производительности. Планирование — это первый этап разработки любого продукта. В этом разделе описывается несколько очень простых правил, которые следует соблюдать при разработке эффективной стратегии производительности.

Думать с точки зрения сценариев

Сценарии позволяют сосредоточиться на критически важных компонентах приложения. Сценарии обычно создаются с учетом клиентов, а также конкурирующих продуктов. Нужно всегда изучать клиентов и выяснять, что действительно их привлекает в вашем продукте и в продуктах ваших конкурентов. Отзывы клиентов помогают определить основной сценарий приложения. Например, при разработке компонента, который будет использоваться при запуске приложения, вполне вероятно, что этот компонент будет вызываться только один раз. Поэтому время запуска становится ключевым сценарием. Другими примерами ключевых сценариев могут быть ситуации, когда требуется определенная частота кадров для последовательностей анимации, или когда для приложения допускается выделение некоторого максимального рабочего набора.

Определение целей

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

Доскональное понимание платформы

В процессе разработки приложения нужно всегда поддерживать цикл, состоящий из операций измерения, отслеживания, уточнения и внесения исправлений. С начала и до конца цикла разработки необходимо измерять показатели производительности приложения в надежной стабильной среде. Необходимо исключить влияние внешних факторов на показатели производительности. Например, при тестировании производительности следует отключать антивирусные программы или любые автоматические обновления, например SMS, чтобы они не влияли на результаты этого теста. После измерения производительности приложения нужно определить, внесение каких изменений будет наиболее существенным для улучшения показателей. После внесения изменений в приложение следует еще раз повторить этот цикл.

Выполнять настройку производительности в виде итеративного процесса

Необходимо выяснить относительные затраты для каждой используемой функции. Например, использование отражения на платформе Microsoft .NET Framework обычно интенсивно потребляет вычислительные ресурсы, поэтому использовать его нужно разумно. Это не означает отказ от использования отражения, а только эффективное соблюдение баланса между требованиями по производительности приложения и требованиями по производительности используемых функций.

Разработка с приоритетом разнообразия графических средств

Ключевым фактором при реализации масштабируемого подхода к достижению необходимой производительности WPF-приложения является приоритетное создание графических средств и их комплексность. Для достижения целей сценария нужно всегда начинать с использования ресурсов, наименьшим образом влияющих на производительность. После достижения этих целей нужно создавать разнообразные графические средства с помощью более ресурсоемких функций, всегда учитывая цели сценария. Помните, что WPF является платформой с широкими возможностями и предоставляет большой набор графических функций. Нерациональное использование ресурсоемких функций может негативно влиять на общую производительность приложения.

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

См. также