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


Инструментирование в Visual Studio (C#, Visual Basic, C++, F#)

В этой статье описываются средства инструментирования в Visual Studio, которые используются для сбора точных счетчиков вызовов и времени вызова.

Существует два типа инструментирования:

  • Статический, который изменяет файлы программы перед запуском (VSInstr)

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

Динамическое инструментирование полезно, так как:

  • Статическое инструментирование нарушает строгое подписывание имен. При динамическом инструментировании эта проблема не возникает, так как инструментирование происходит во время выполнения.

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

Инструментирование и выборка

Когда дело доходит до профилирования, существует два механизма сбора данных. Сбор данных с использованием инструментов или с использованием выборки. Подробные сведения см. в разделе Общие сведения о методах сбора производительности.

Средство динамического инструментирования

Инструментирование. Начиная с версии 17.5 Visual Studio 2022, инструмент для инструментирования обеспечивает динамическое инструментирование для .NET Core, .NET 5+, и .NET Framework. Это средство обеспечивает лучшую производительность для сценариев инструментирования. Доступ к этому инструменту с помощью профилировщика производительности (ALT +F2). Дополнительные сведения см. в следующей статье:

Начиная с Visual Studio 2022 версии 17.6 средство инструментирования также поддерживает C/C++, но использует статическое инструментирование (VSInstr).

Сведения об использовании этого средства из командной строки см. в следующей статье:

инструментирование - начиная с Visual Studio 2019 версии 16.9, инструмент обеспечивает динамическое инструментирование для .NET Core, .NET 5+ и .NET Framework (не C/C++). Это средство использует версию VSInstr.exe, которая поддерживает динамическое инструментирование. Доступ к этому инструменту с помощью профилировщика производительности (ALT +F2). Для библиотек DLL вместо этого необходимо использовать средство командной строки (VSInstr).

Средство статического инструментирования

VSInstr — начиная с версии 17.6 Visual Studio 2022, инструмент инструментирования использует VSInstr для поддержки C/C++. VSInstr также используется для сценариев командной строки и работает для приложений .NET Framework и C/C++. Дополнительные сведения см. в следующей статье: