在 Visual Studio(C#、Visual Basic、C++、F#)中进行检测
本文介绍 Visual Studio 中的检测工具,这些工具用于收集确切的调用计数和调用时间。
有两种仪器系统:
静态,它会在程序运行之前修改程序的文件(VSInstr)
动态方法,该方法使用一种动态过程,不会更改文件。 它将文件加载到内存中,然后对其进行修改以收集检测信息。 使用动态检测工具可以获取更准确的信息,但对于程序的一小部分而言。 可以调查小段代码。
动态检测非常有用,因为:
静态检测会中断强名称签名。 使用动态检测时,会避免此问题,因为检测在运行时发生。
使用静态检测时,需要按特定顺序部署文件,并且该工具可能不知道文件的位置。 需要手动运行 VSInstr。 有了新的检测工具,你就无需查找文件。 在复杂的程序上,查找所有文件可能是一个困难的手动过程。
仪器与采样
在分析方面,有两种收集数据的机制。 使用仪器进行收集或使用采样进行收集。 有关详细信息,请参阅 了解性能收集方法。
动态检测工具
检测 - 从 Visual Studio 2022 版本 17.5 开始,检测工具为 .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 - 从 Visual Studio 2022 版本 17.6 开始,检测工具 使用 VSInstr 进行 C/C++支持。 VSInstr 还用于命令行方案,适用于 .NET Framework 和 C/C++ 应用。 有关详细信息,请参阅以下文章:
- 使用性能分析器命令行收集独立应用程序的详细计时数据。