Instrumentering i Visual Studio (C#, Visual Basic, C++, F#)
I den här artikeln beskrivs instrumenteringsverktygen i Visual Studio, som används för att samla in exakta samtalsantal och samtalstider.
Det finns två typer av instrumentation:
Static, som ändrar programmets filer innan det körs (VSInstr)
Dynamisk, som använder en dynamisk process där den inte ändrar filerna. Den läser in filerna till minnet och ändrar dem sedan för att samla in instrumentationsinformationen. Med hjälp av verktyget för dynamisk instrumentering får du mer exakt information, men för en mindre del av programmet. Du kan undersöka små delar av koden.
Dynamisk instrumentering är användbart eftersom:
Statisk instrumentering bryter mot stark namnunderskrift. Med dynamisk instrumentering undviks det här problemet eftersom instrumentation sker vid körning.
Med statisk instrumentering måste filer distribueras i en viss ordning och verktyget kanske inte vet var filerna finns. Du måste köra VSInstr manuellt. Med det nya instrumenteringsverktyget behöver du inte leta rätt på filerna. I ett komplicerat program kan det vara svårt att hitta alla filer manuellt.
Instrumentation kontra sampling
När det gäller profilering finns det två mekanismer för att samla in data. Insamling med hjälp av instrumentation eller samling med sampling. Detaljerad information finns i Förstå metoder för prestandainsamling.
Verktyg för dynamisk instrumentering
Instrumentation – Från och med Visual Studio 2022 version 17.5 tillhandahåller instrumenteringsverktyget dynamisk instrumentation för .NET Core, .NET 5+ och .NET Framework. Det här verktyget ger bästa prestanda för instrumentationsscenarier. Få åtkomst till det här verktyget med hjälp av Performance Profiler (Alt + F2). Mer information finns i följande artikel:
Från och med Visual Studio 2022 version 17.6 stöder instrumenteringsverktyget även C/C++, men använder statisk instrumentation (VSInstr).
Om du vill använda det här verktyget från kommandoraden läser du följande artikel:
Instrumentation – Från och med Visual Studio 2019 version 16.9 tillhandahåller instrumenteringsverktyget dynamisk instrumentation för .NET Core, .NET 5+ och .NET Framework (inte C/C++). Det här verktyget använder en version av VSInstr.exe som stöder dynamisk instrumentering. Få åtkomst till det här verktyget med hjälp av Performance Profiler (Alt + F2). För DLL:er måste du använda kommandoradsverktyget (VSInstr) i stället.
Statiskt instrumenteringsverktyg
VSInstr – Från och med Visual Studio 2022 version 17.6 använder verktyget Instrumentation VSInstr för C/C++-stöd. VSInstr används också för kommandoradsscenarier och fungerar för .NET Framework- och C/C++-appar. Mer information finns i följande artikel: