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