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


Выбор среди профилировщика производительности Visual Studio, набора средств производительности Windows и PerfView

В этом руководстве представлено общее сравнение основных технологий профилирования производительности общего назначения в Microsoft: Visual Studio Performance Profiler, Windows Performance Toolkit и PerfView.

Эти средства помогут вам диагностировать и понять характеристики производительности приложений в Windows. Цель этого руководства — предоставить общие сведения о том, когда использовать другую, выделить каждую из своих сильных сторон и предоставить краткий обзор функциональных возможностей, которые они содержат.

Обзор

Профилировщик производительности Visual Studio создается командой Visual Studio для быстрого понимания характеристик производительности приложения в рамках разработки в существующей системе проектов Visual Studio. Ее сила тесно интегрируется с активным проектом разработки, упрощая анализ наиболее распространенных сценариев производительности и быструю, простую коллекцию только одного приложения.

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

PerfView создается командой .NET для понимания производительности приложений .NET. Как и набор средств производительности Windows, он может одновременно собирать большие объемы информации со всего компьютера. Он отличается от его способности отображать очень подробные сведения о службах среды выполнения .NET, таких как сборка мусора, JIT-компиляция и управляемый пул потоков. PerfView можно использовать для управляемых, собственных и смешанных приложений.

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

Установка

Профилировщик производительности Visual Studio — это компонент visual Studio, который можно установить с помощью того же мастера установки, что и остальная часть среды разработки.

Набор средств производительности Windows можно скачать отдельно в составе комплекта средств для оценки и развертывания Windows. Однако средство записи производительности командной строки предварительно установлено с Windows 10 и Windows 11, как wpr.exe доступно для переменной пути по умолчанию из оболочк, таких как PowerShell и командная строка.

Анализатор производительности доступен как приложение в Microsoft Store.

PerfView доступен в виде автономного скачивания на странице выпусков PerfView GitHub. Установка не требуется.

Настройка сценариев расширенного анализа производительности

Набор средств производительности Windows также предлагает две точки расширяемости, которые могут служить сценариям расширенного анализа производительности.

  • Пакет SDK Microsoft Performance Toolkit обрабатывает обработку данных трассировки и позволяет разработчикам создавать собственные подключаемые модули для просмотра в Анализатор производительности Windows.
  • Трассировка .NET позволяет создавать пользовательские средства, которые могут обрабатывать сведения трассировки в результирующей таблице и особенно полезны для автоматического анализа данных массовой трассировки.

PerfView аналогично основан на библиотеке TraceEvent .NET для программного использования трассировок производительности. TraceEvent можно использовать независимо от PerfView для выполнения пользовательского анализа данных трассировки производительности.

Примечание.

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

Рекомендации по выбору инструмента

Выбранное средство зависит от сценария производительности, который вы пытаетесь изучить. Сравнение функциональных возможностей и признаков между инструментами приведено в таблице ниже.

Совет

Для общего правила начните с профилирования Visual Studio, когда это возможно. Перейдите к Набору средств производительности Windows или PerfView при достижении ограничений возможностей средств Visual Studio.

Ситуация Профилировщик производительности Visual Studio Windows Performance Toolkit PerfView
Общие рекомендации по использованию
Размер файла трассировки ✔️ 🆗 🆗
Приобретение инструментов ✔️ ✔️ ✔️
Комплекты расширяемости ✔️ ✔️
Вопросы о работе
Один процесс или проект ✔️ 🆗 🆗
Несколько процессов ✔️ ✔️
Рекомендации по оборудованию
Загрузка ЦП ✔️ ✔️ ✔️
Использование GPU ✔️ ✔️
Использование памяти ✔️ ✔️ ✔️
Входные и выходные данные устройства ✔️ ✔️
Использование питания ✔️
Системные дескрипторы ✔️ ✔️
Рекомендации по поддержке языка кода
Поддержка C/C++ ✔️ ✔️ ✔️
Поддержка .NET ✔️ ✔️ ✔️
Поддержка JavaScript 🆗 🆗 🆗
Рекомендации по сценариям
Трассировка событий Windows 🆗 ✔️ ✔️
Создание ✔️
HTML/Edge/Internet Explorer/Webview ✔️
XAML/WinUI 🆗 ✔️ ✔️
Конвейеры аудио и видео и сбои ✔️
Время базы данных ✔️
Выделение управляемых объектов и сборка мусора ✔️ ✔️
Пользовательские сценарии ✔️ ✔️

Ключ

  • ✔️ Хорошо поддерживается: предназначен для предполагаемой задачи и достигает надежных и подробных результатов.
  • 🆗 Поддерживается: может потребоваться дополнительная конфигурация или шаги для достижения требуемых результатов. Может содержать ограниченную область действия в категории.
  • ❌ Не поддерживается: не предназначен для этого использования.

Общие рекомендации по использованию

Для тех, кто только начинает работу с анализом производительности, мы рекомендуем Visual Studio Performance Profiler как хорошо интегрированную функцию в существующем наборе разработки Visual Studio. Мы рекомендуем использовать профилировщик производительности Visual Studio в PerfView, если он соответствует вашим потребностям.

Для более сложного анализа производительности системы, который может требовать больше мощности и универсальности, мы рекомендуем Windows Performance Toolkit, который состоит из двух средств, используемых для выполнения задач анализа производительности:

  • Средство записи производительности Windows, доступное как в командной строке, так и с графическим интерфейсом, отвечает за запись сеанса трассировки.
  • Анализатор производительности Windows открывается позже для последующей обработки собранных данных и предоставления высоконастройного представления анализа.

Ниже приведены некоторые преимущества, предоставляемые Профилировщиком производительности Visual Studio.

  • Хорошее введение в анализ производительности в основных доменах.
  • Он обрабатывает многие сложности анализа и отладки автоматически на основе конфигурации проекта.
  • Он автоматически выделяет основные области озабоченности.
  • Лучше сосредоточиться только на одном приложении, с меньшим, более ориентированным набором данных и меньшей областью сбора.
  • Более конкретный фокус преобразуется в меньшее влияние на другие приложения и оборудование компьютера во время профилирования, уменьшение общего размера файлов трассировки, созданных и сохраненных, а также увеличение скорости обработки для просмотра сведений после завершения сбора.
  • Занимает меньше времени, чтобы начать и завершить трассировку, с более быстрой возможностью просмотра и поворота, так как Профилировщик производительности Visual Studio обеспокоен только приложением, а не всей системой.
  • Сбор данных и результирующий анализ выполняются в Visual Studio, при этом страницы анализа запускаются автоматически при выводе коллекции. Представление отчета также автоматически фокусирует внимание на горячих точках или областях действий.

Ниже приведены некоторые преимущества, предоставляемые набором средств производительности Windows.

  • Достаточно документации и блогов предоставляются командами по производительности и диагностике Windows, которые помогут вам приступить к работе.
  • Лучше собирать очень большие файлы, особенно из систем, занятых фоновыми задачами. Это средство catch-all для сбора информации, которая затем будет фильтроваться позже в интерфейсе Windows Анализатор производительности.
  • Возможность настраиваться для сценариев расширенного анализа производительности с помощью точек расширяемости. (См. ниже)

Ниже перечислены некоторые преимущества, которые предлагают PerfView:

  • Полная встроенная документация и видео, доступные в Интернете, связанные с приложением.
  • Легко развернуть в рабочих средах, просто скопировав PerfView.exe.
  • Режим записи полетов для записи проблем, которые трудно воспроизвести.
  • Очень подробные диагностика для служб среды выполнения .NET.
  • Расширяемый для пользовательских представлений.

Вопросы о работе

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

Выберите PerfView, если Visual Studio не имеет необходимых возможностей, невозможно запустить из-за требований к коллекции (распространенных в рабочих средах) или более подробных диагностических возможностей .NET.

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

Рекомендации по оборудованию

Профилировщик производительности Visual Studio, Набор средств производительности Windows и PerfView могут диагностировать ЦП и память для основных компонентов оборудования с помощью Профилировщика производительности Visual Studio и Набора средств производительности Windows, которые также поддерживают GPU. Средства обычно хорошо соответствуют вводным анализу в этих областях.

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

Использование GPU можно анализировать как с помощью Профилировщика производительности Visual Studio, так и набора средств производительности Windows, которые содержат общие сведения.

Использование памяти можно проанализировать с помощью всех трех средств сбора информации о пространстве кучи и стеках, связанных с выделениями в куче.

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

Рекомендации по поддержке языка кода

Набор средств производительности Windows в основном ориентирован на поддержку C и C++, так как эти языки используются в базе кода операционной системы Windows.

Поддержка Профилировщика производительности Visual Studio ориентирована на более широкий спектр языков программирования, начиная с разработки технологий .NET, таких как C# и ASP.NET затем расширяясь наружу.

PerfView поддерживает приложения .NET и собственные приложения (C и C++). Он имеет глубокие знания о средах выполнения .NET и возможностях ASP.NET веб-рабочих нагрузок.

Это не значит, что Visual Studio не может анализировать код C или C++ или что Windows Анализатор производительности не может анализировать приложения .NET или что PerfView не может анализировать веб-приложения. Лучше всего начать с инструмента наиболее тесного сопоставления приложения, чтобы воспользоваться преимуществами сильных сторон каждого инструмента.

Рекомендации по сценариям

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

Параметры Профилировщика производительности Visual Studio, как правило, сосредоточены на .NET, пользовательском интерфейсе и базах данных, находящихся в анализируемом приложении.

Набор средств производительности Windows, как правило, фокусируется на компонентах операционной системы и платформах, таких как композиция, представления браузера и сбои в конвейерах обработки в режиме реального времени.

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

PerfView предназначен для глубоких исследований приложений и сред выполнения .NET, но так же, как и в многопроцессных и операционных системах исследований.

Итоги

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