Если вы хотите создавать приложения, отличающиеся высокой производительностью, вам следует закладывать эту производительность при планировании и проектировании наравне с другими возможностями приложения. Вы можете использовать средства, предоставляемые корпорацией Майкрософт, для измерения уровня производительности приложения и внесения усовершенствований в использование памяти, пропускную способность кода и скорость реагирования. В этом разделе перечислены средства анализа производительности, предоставляемые корпорацией Майкрософт, и приведены ссылки на другие разделы, описывающие аспекты производительности для разных областей разработки.
Разработка и планирование для обеспечения производительности
Если вы хотите получить высокопроизводительное приложение, этот уровень производительности следует закладывать при проектировании наравне с любой другой возможностью приложения. Вам следует определить в приложении сценарии, критические с точки зрения производительности, установить целевые показатели производительности, а также осуществлять раннее и частое измерение производительности для таких сценариев. Поскольку все приложения разные и имеют разные критичные для производительности пути выполнения, раннее определение таких путей и сосредоточение усилий в нужном направлении позволяет добиться максимальной производительности труда.
Вам не нужно разбираться в тонкостях работы целевой платформы, чтобы создать высокопроизводительное приложение. Однако вам следует разобраться, какие части целевой платформы наиболее критичны с точки зрения производительности. Это можно сделать, измерив производительность на раннем этапе процесса разработки.
Чтобы определить критичные для производительности области и установить целевые показатели производительности, всегда учитывайте взаимодействие с пользователем. Время запуска и скорость реагирования являются двумя ключевыми областями, которые повлияют на восприятие приложения пользователем. Если ваше приложение использует много памяти, оно может показаться пользователю медленным, может негативно влиять на выполнение других приложений в системе, а в некоторых случаях может не пройти процесс отправки в Магазин Windows или Магазин Windows Phone. Кроме того, если вы определите, какие части кода выполняются чаще всего, то сможете хорошо оптимизировать их.
Анализ производительности
В рамках общего плана разработки установите точки для измерения производительности приложения и сравнения результатов с заданными ранее целями. Измеряйте показатели приложения в той среде и на том оборудовании, которые, вероятнее всего, будут применять ваши пользователи. Осуществляя ранний и частый анализ производительности приложения, вы можете изменить те решения по архитектуре, исправление которых на более позднем этапе цикла разработки потребовало бы значительных затрат. В следующих разделах описаны средства оценки производительности, которые вы можете применять для анализа своих приложений, и используемая этими средствами трассировка событий.
Средства производительности
Ниже указано несколько средств оценки производительности, которые вы можете использовать со своими приложениями .NET Framework.
Средство
Описание
Анализ производительности Visual Studio
Используйте для анализа использования ЦП у приложений .NET Framework, которые будут развернуты на компьютерах под управлением операционной системы Windows.
Это средство доступно в меню Отладка Visual Studio после открытия проекта. Для получения дополнительной информации см. статью об обозревателе производительности. Примечание: Используйте Windows Phone Анализ приложений (см. следующую строку) при выборе Windows Phone.
Анализ приложения Windows Phone
Используйте для анализа использования ЦП и памяти, скорости передачи данных по сети, скорости реагирования приложения и расхода заряда батареи у своих приложений Windows Phone.
Используйте для определения аспектов производительности, связанных с ЦП и памятью. Это средство использует трассировку событий для Windows (ETW) и API профилирования CLR для предоставления расширенных исследований памяти и ЦП, а также сведений о сборке мусора и JIT-компиляции. Дополнительные сведения об использовании PerfView см. в записях блога.
Вопросы, относящиеся к памяти, см. в разделе Использование PerfView для анализа памяти.
Применяйте для определения общей производительности системы, например, использования памяти и хранилища приложением, когда на одном компьютере выполняется несколько приложений. Это средство доступно в центре загрузки в составе комплекта средств для оценки и развертывания Windows (ADK) для Windows 8. Дополнительные сведения см. в разделе Windows Performance Analyzer.
Трассировка событий Windows (ETW)
Трассировка событий Windows — это методика, которая позволяет вам получить диагностические сведения о выполнении кода и является важным компонентом многих упомянутых ранее средств оценки производительности. Трассировка событий Windows создает журналы при порождении определенных событий приложениями .NET Framework и операционной системой Windows. С помощью трассировки событий Windows вы можете включать и отключать ведение журналов динамически, чтобы можно было осуществлять подробную трассировку в рабочей среде без перезапуска приложения. Платформа .NET Framework обеспечивает поддержку событий трассировки событий Windows, кроме того, трассировка событий Windows используется многими средствами профилирования и оценки производительности для формирования данных о производительности. Эти средства часто включают и отключают события трассировки событий Windows, поэтому будет полезно ознакомиться с ними. Вы можете использовать определенные события трассировки событий Windows для сбора информации о производительности отдельных компонентов своего приложения. Дополнительные сведения о поддержке трассировки событий Windows в .NET Framework см. в разделах События трассировки событий Windows в среде CLR и События трассировки событий Windows в библиотеке параллельных задач и PLINQ.
Производительность по типам приложений
Для каждого типа приложения .NET Framework имеются свои рекомендации, особенности и средства по оценке производительности. В следующей таблице приведены ссылки на разделы о производительности для определенных типов приложений .NET Framework.
Содержит советы по повышению производительности, выработанные во время перевода компиляторов C# и Visual Basic на управляемый код, и несколько реальных примеров из компилятора C#.
Создавайте комплексные решения в Microsoft Azure для создания Функции Azure, реализации веб-приложений и управления ими, разработке решений, использующих службу хранилища Azure, и т. д.