Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Повышение производительности приложения и улучшение его работы в целом делает его усовершенствованным и высококачественным решением, которое позволяет пользователям экономить время, средства и заряд аккумулятора, а программистам — усилия, требуемые для разработки. Ваше приложение будет потреблять меньше энергии, что позволит увеличить время автономной работы и сократить выбросы углекислого газа. Приложения более стабильно работают на менее дорогом оборудовании. А производительность ваших клиентов повышается.
На этой странице представлен обзор технологий и средств разработки для измерения, анализа и оптимизации производительности приложения для Windows. Если вы создаете приложение UWP, обязательно ознакомьтесь с документацией по производительности для UWP.
Что такое производительность приложения и почему она важна?
Производительность — это мера того, насколько эффективно ваше приложение использует ресурсы системы для выполнения тех задач, для которых оно было создано. В ней рассматриваются различные аспекты взаимодействия программы с базовым устройством, в том числе:
- Использование ЦП
- Потребление памяти
- Энергопотребление
- Использование сети и хранилища
- Производительность анимации
Все эти свойства имеют элемент затрат, связанных с ними: например, сколько ЦП использует мое приложение? Сколько пропускной способности пользователя будет использоваться? Насколько быстро загружается эта конкретная страница приложения?
Пользователи ожидают производительность в качестве основного свойства используемого программного обеспечения. Они хотят, чтобы их приложения были адаптивными и эффективно используют ресурсы своей системы. Приложения, которые демонстрируют низкую производительность, вызывают разочарование, что может привести к снижению активности пользователей. Чтобы обеспечить клиентам наилучший опыт, поэтому важно сделать производительность регулярной частью рабочего процесса разработки.
Когда следует измерять производительность приложения?
Производительность приложения может охватывать множество этапов процесса разработки. Он имеет последствия для всего, начиная от выбранной структуры данных до технологии, выбранной для создания приложения. Помните о производительности при разработке приложения и планируйте регулярно проводить тестирование производительности в рамках обновления и обслуживания вашего приложения.
Как приблизиться к измерению производительности
Ниже приведены некоторые рекомендации по тестированию приложения на производительность.
- Используйте свои знания о приложении. Понимание наиболее распространенных сценариев для пользователей позволит вам мудро тратить время на оптимизацию правильных вещей. Если у вас есть данные о том, как пользователи взаимодействуют с приложением, это будет отличное время для просмотра.
- Где ваши пользователи тратят большую часть времени?
- Что самое важное, что клиент будет делать с вашим программным обеспечением?
- Каковы требования к оборудованию вашего приложения?
- Задайте цели производительности для наиболее важных сценариев пользователей.
- Будьте точны в том, что вы пытаетесь оптимизировать. Это ЦП? Батареи? Пропускная способность сети?
- Выберите инструменты, которые вы будете использовать для проведения измерений.
- Применение научного мышления при тестировании. Создайте тесты в управляемой среде. Затем внесите изменения и снова измерьте, чтобы узнать, как эти изменения повлияли на поведение вашего приложения.
- Добавьте тестирование регрессии в тестовую среду. Это гарантирует, что метрики производительности не регрессируют с течением времени.
Переплетение метрик
Хотя вы обычно будете сосредоточиться на одной области производительности во время анализа, помните, что области часто пересекаются. Улучшение одного из них может каскадно привести к улучшению других областей.
Например, исправление потребления электроэнергии часто является проблемой синхронизации. Сокращение использования памяти может привести к сокращению времени, затраченного на использование ЦП. Могут быть ситуации, когда дополнительные ресурсы, потраченные в одной области, дают более эффективное улучшение в другой области, например, увеличение потребления памяти может снизить использование сети или хранилища посредством кэширования.
Решение о внесении изменений зависит от того, что наиболее важно для ваших клиентов.
Какие средства можно использовать для измерения производительности приложения?
Существует множество различных средств, позволяющих измерить производительность приложения для Windows.
Если вы не уверены, какие средства выбрать, ознакомьтесь со статьей: Выбор между Профилировщиком производительности Visual Studio и Windows Performance Toolkit.
Visual Studio Профилировщик производительности
Visual Studio предлагает средства для мониторинга вашего приложения и предоставления аналитических сведений о вашем коде. Ознакомьтесь с приведенными ниже ресурсами, чтобы узнать, как использовать эти средства для оптимизации кода прямо в среде разработки.
Измерение производительности приложения в Visual Studio
Пример использования. Увеличение производительности в два раза менее чем за 30 минут
Windows Performance Toolkit
Windows Performance Recorder и Windows Performance Analyzer включают подробный мониторинг и анализ вашего приложения и всей системы с помощью Event Tracing for Windows (ETW). См. ссылки ниже о том, как начать.
PerfView
PerfView — это средство мониторинга и анализа open source, созданное командой .NET для изучения проблем с производительностью .NET. Благодаря возможности декодировать .NET символы и управляемую память, это идеальный вариант для управляемых приложений.
Серия руководств по PerfView
SizeBench
SizeBench — это утилита, которая помогает исследовать и уменьшать размер ваших скомпилированных двоичных файлов (DLL, EXE и другие PE-файлы).
Дополнительные ресурсы
Блоги и новости
Загляните за кулисы, ознакомившись с блогами для разработчиков, написанных нашими экспертами по производительности, чтобы создать лучшую версию своего приложения.
Блог производительности .NET
Блоги о производительности Visual Studio
Сообщество и поддержка
- Есть ли проблемы с производительностью в вашем цикле компиляции-отладки-тестирования? Сообщите их в репозитории Windows Dev Performance на GitHub.
Производительность и устойчивость
Инжиниринг производительности непосредственно пересекается с движением за устойчивое программное обеспечение. Большинство электрических сетей используют для выработки электроэнергии ископаемое топливо. Так как приложение работает на компьютере, оно потребляет дополнительную мощность, которая может быть небольшой для одного пользователя, но добавляется по мере роста базы пользователей.
Хотите узнать, как инжиниринг производительности связан с экологичностью? Ознакомьтесь с принципами зеленой инженерии программного обеспечения и блогом корпорации Майкрософт по устойчивому программному обеспечению.
Измерение влияния вашего приложения на потребление электроэнергии и выбросы углерода
Роль инжиниринга производительности при разработке углеродоэффективных приложений
Наш план создания содержимого
Без надлежащего руководства производительность может стать сложной частью процесса разработки. Обеспечение доступности нужной документации для разработчиков приложений играет важную роль в создании более быстрых приложений. В приведенном ниже плане указаны следующие статьи, которые будут добавлены в эту серию документов, в том порядке, в котором они будут опубликованы. Если видите что-то, что вам нравится, или что-то, что отсутствует, сообщите нам на GitHub по ссылкам в нижней части этой страницы! Наша цель заключается в том, чтобы курировать комплексный и образовательный набор документов, посвящённый производительности приложений, который соответствует вашим потребностям, поэтому будем рады услышать ваше мнение. Вы можете оставить отзыв с помощью кнопок внизу этой страницы, поделившись своими рекомендациями о том, какие вопросы о производительности приложений для Windows нужно рассмотреть.
| Тема | Описание |
|---|---|
| Введение в области производительности | Пояснение термина "производительность" в контексте ЦП, памяти, GPU и т. д. |
| Определение показателей для измерения | В зависимости от рабочей нагрузки, среды и других факторов, некоторые области производительности могут потребовать большего внимания, чем другие. Из этого документа вы узнайте, что и когда нужно измерять. |
| Цикл тестирования производительности | Пошаговый разбор жизненного цикла тестирования производительности, включая настройку тестовой среды, анализ результатов и улучшение продукта. |
| Сведения о различных средствах оценки производительности | В этом документе будут рассмотрены дополнительные средства оценки производительности, а также примеры их использования и рекомендации по их использованию. |
| Примеры использования | Ряд сквозных сценариев и их пути через цикл тестирования производительности. |
Windows developer