Инструментирование в 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++. Дополнительные сведения см. в следующей статье:
- Сбор подробной временной информации для автономного приложения с помощью командной строки профайлера.