Производительность .NET Framework
Если вы хотите создавать приложения, отличающиеся высокой производительностью, вам следует закладывать эту производительность при планировании и проектировании наравне с другими возможностями приложения. Вы можете использовать средства, предоставляемые корпорацией Майкрософт, для измерения уровня производительности приложения и внесения усовершенствований в использование памяти, пропускную способность кода и скорость реагирования. В этом разделе перечислены средства анализа производительности, предоставляемые корпорацией Майкрософт, и приведены ссылки на другие разделы, описывающие аспекты производительности для разных областей разработки.
Разработка и планирование для обеспечения производительности
Если вы хотите получить высокопроизводительное приложение, этот уровень производительности следует закладывать при проектировании наравне с любой другой возможностью приложения. Вам следует определить в приложении сценарии, критические с точки зрения производительности, установить целевые показатели производительности, а также осуществлять раннее и частое измерение производительности для таких сценариев. Поскольку все приложения разные и имеют разные критичные для производительности пути выполнения, раннее определение таких путей и сосредоточение усилий в нужном направлении позволяет добиться максимальной производительности труда.
Вам не нужно разбираться в тонкостях работы целевой платформы, чтобы создать высокопроизводительное приложение. Однако вам следует разобраться, какие части целевой платформы наиболее критичны с точки зрения производительности. Это можно сделать, измерив производительность на раннем этапе процесса разработки.
Чтобы определить критичные для производительности области и установить целевые показатели производительности, всегда учитывайте взаимодействие с пользователем. Время запуска и скорость реагирования являются двумя ключевыми областями, которые повлияют на восприятие приложения пользователем. Если ваше приложение использует много памяти, оно может показаться пользователю медленным, может негативно влиять на выполнение других приложений в системе, а в некоторых случаях может не пройти процесс отправки в Магазин Windows или Магазин Windows Phone. Кроме того, если вы определите, какие части кода выполняются чаще всего, то сможете хорошо оптимизировать их.
Анализ производительности
В рамках общего плана разработки установите точки для измерения производительности приложения и сравнения результатов с заданными ранее целями. Измеряйте показатели приложения в той среде и на том оборудовании, которые, вероятнее всего, будут применять ваши пользователи. Осуществляя ранний и частый анализ производительности приложения, вы можете изменить те решения по архитектуре, исправление которых на более позднем этапе цикла разработки потребовало бы значительных затрат. В следующих разделах описаны средства оценки производительности, которые вы можете применять для анализа своих приложений, и используемая этими средствами трассировка событий.
Средства производительности
Ниже указано несколько средств оценки производительности, которые вы можете использовать со своими приложениями .NET Framework.
Средство | Описание |
---|---|
Анализ производительности Visual Studio | Используйте для анализа использования ЦП у приложений .NET Framework, которые будут развернуты на компьютерах под управлением операционной системы Windows. Это средство доступно в меню Отладка Visual Studio после открытия проекта. Для получения дополнительной информации см. статью об обозревателе производительности. Примечание: Используйте Windows Phone Анализ приложений (см. следующую строку) при выборе Windows Phone. |
Анализ приложения Windows Phone | Используйте для анализа использования ЦП и памяти, скорости передачи данных по сети, скорости реагирования приложения и расхода заряда батареи у своих приложений Windows Phone. Это средство доступно в меню Отладка проекта Windows Phone в Visual Studio после установки пакета SDK для Windows Phone. Дополнительные сведения см. в разделе "Профилирование приложений" для Windows Phone 8. |
PerfView | Используйте для определения аспектов производительности, связанных с ЦП и памятью. Это средство использует трассировку событий для Windows (ETW) и API профилирования CLR для предоставления расширенных исследований памяти и ЦП, а также сведений о сборке мусора и JIT-компиляции. Дополнительные сведения об использовании PerfView см. в записях блога. Вопросы, относящиеся к памяти, см. в разделе Использование PerfView для анализа памяти. |
Windows Performance Analyzer | Применяйте для определения общей производительности системы, например, использования памяти и хранилища приложением, когда на одном компьютере выполняется несколько приложений. Это средство доступно в центре загрузки в составе комплекта средств для оценки и развертывания 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.
Тип приложения | См. |
---|---|
Приложения .NET Framework для всех платформ | Сборка мусора и производительность Советы по производительности .NET |
приложения магазина Windows 8.x, написанные на C++, C# и Visual Basic | Рекомендации по повышению производительности приложений Магазина Windows на C++, C# и Visual Basic |
Windows Presentation Foundation (WPF) | WPF Performance Suite |
ASP.NET | Общие сведения о производительности ASP.NET |
См. также
Заголовок | Описание |
---|---|
Кэширование в приложениях платформы .NET Framework | Содержит описание методик кэширования данных, применяемых для повышения производительности приложения. |
Отложенная инициализация | Содержит описание способов инициализации объектов по мере необходимости для повышения производительности, особенно при запуске приложения. |
Надежность | Содержит сведения о предотвращении асинхронных исключений в серверной среде. |
Разработка больших, быстро реагирующих приложений .NET Framework | Содержит советы по повышению производительности, выработанные во время перевода компиляторов C# и Visual Basic на управляемый код, и несколько реальных примеров из компилятора C#. |